运行 CRON 脚本时缺少_SESSION变量


_SESSION variables missing when running CRON script

我有一个PHP脚本来检查_SESSION变量(在创建会话时,我设置了以下var $_SESSION['LAST_ACTIVITY']=time(((。

该脚本有权访问相关的会话 ID。它设置会话 ID,启动会话并检查变量。

当我手动运行脚本时,它运行良好。它启动先前启动的会话并检索_SESSION变量。

但是,当相同的脚本通过 CRON 运行时,不会设置_SESSION变量...

知道为什么吗?

当你调用session_start()时,php 会以 $_COOKIE 为单位查找会话 ID,有时是 $_REQUEST。这些在命令行版本中不存在,因为没有网络服务器。

您可以通过session_start($id);手动指定会话 ID

确保 Web 服务器和命令行 PHP 版本之间的session.save_path设置相同。它们可以是不同的。通过 phpinfo(( 检查两个版本。