猿问

我可以在后台继续现有的脚本会话并修改值吗?

我正在创建一个在后台运行的 php 脚本。脚本完成后,我希望它更改从 Web 界面启动的会话中的标志。我尝试将会话 id 传递给脚本并使用 id 启动相同的会话,但它一直在循环。


我尝试将会话 id 传递给脚本并使用 id 启动同一个会话,但它不起作用。


网页界面.php


$_SESSION["flag"] = false;

shell_exec("php BackgroundScript.php ".session_id()." &");

后台脚本.php


$id = $argv[1];

session_id($id);

session_start();

//do things

$_SESSION["flag"] = true;

当我尝试初始化会话时,代码似乎没有完成。


料青山看我应如是
浏览 132回答 1
1回答

ITMISS

您可以尝试假装存在会话 cookie,如下所示:网页界面.php$_SESSION["flag"] = false;shell_exec("php BackgroundScript.php ".session_id()." &");后台脚本.php$id = $argv[1];$_COOKIE["PHPSESSID"] = $id;session_start();//do things$_SESSION["flag"] = true;这在某些情况下可以起作用,但也可能不起作用。我认为更好的解决方案是通过数据库或文件进行通信。
随时随地看视频慕课网APP
我要回答