在Cronjob(Crontab)中使用会话

Tri*_*oXx 3 php cron session crontab

嗨,可以在cronjob中使用会话吗?

我使用的脚本是:

session_start();

if(empty($_SESSION['startwert'])){$startwert = 0;}
else {$startwert = $_SESSION['startwert'];}

if(empty($_SESSION['zielwert'])){$zielwert = 10000;}
else {$zielwert = $_SESSION['zielwert'];}


....


$_SESSION['startwert'] = $zielwert;
$_SESSION['zielwert'] = $zielwert + 10000;
echo "Startwert: ".$_SESSION['startwert']."<br>";
echo "Zielwert: ".$_SESSION['zielwert']."<br>";
Run Code Online (Sandbox Code Playgroud)

但是Cron始终开始将“ startwert”设置为10000,将“ zielwert”设置为20000,并且不会增加该值。


好的,现在我已经尝试过了。

/usr/bin/wget -O - http://mydomain.com/script.php
Run Code Online (Sandbox Code Playgroud)

但是cron总是从10000和20000开始。有什么想法吗?

Aar*_*ler 5

如果您要通过cron从cron调用PHP脚本wget,请使用--save-cookies选项。如果通过curl,请使用--cookie-jar。(如果要通过php -f [...]或类似方式调用PHP脚本,则首先需要通过wget或来调用它curl。)

例如:

wget --load-cookies /tmp/cron-session-cookies --save-cookies /tmp/cron-session-cookies --keep-session-cookies [...]
Run Code Online (Sandbox Code Playgroud)

要么

curl -b --cookie-jar /tmp/cron-session-cookies [...]
Run Code Online (Sandbox Code Playgroud)

wget默认情况下,不保存您要执行的会话cookie,因此--keep-session-cookies可以选择;curl默认情况下会保存它们,因此所需要做的就是-b启用cookie并--cookie-jar告知curl在哪里可以找到它们。在任何一种情况下,请[...]使用您已经传递给程序的任何选项和参数替换,并调整cookie jar文件的位置以进行品尝。