控制台命令上的PHP会话丢失

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了控制台命令上的PHP会话丢失相关的知识,希望对你有一定的参考价值。

我知道会话没有在控制台命令上工作,我有一个有3个步骤或页面的应用程序:

Step1页面:我已经开始会话并且会话ID为“XYZ”。

Step2页面:我在后台或控制台中运行了一些脚本或php代码并将输出发送到浏览器,并在此步骤2尝试获取会话ID,但它没有任何价值。我正在重定向到第3步

Step3页面:当我尝试获取会话ID的值时,我可以获得会话ID“XYZ”。

现在请告诉我如何在步骤2中获取会话ID值。

或者有任何其他方式可以保存任何唯一值,我将为每个客户端计算机(用户)工作,如会话。我尝试缓存但不会为每个用户或客户端。

谢谢。

答案

console(cli)脚本无法访问会话变量,因为没有http头来发送会话ID。

我不知道你的运行背景php究竟是如何,但你可以像这样解析变量

exec("php sctipt.php $_SESSION['v1'] $_SESSION['v2']")

在脚本中,变量位于$argv数组中

ref:https://secure.php.net/manual/en/reserved.variables.argv.php

以上是关于控制台命令上的PHP会话丢失的主要内容,如果未能解决你的问题,请参考以下文章

PHP系列(十三)PHP会话控制

相同的多域会话,但会话值丢失

页面之间的 PHP 会话丢失 - 行为因服务器而异

php会话随机丢失,无法理解为啥

在片段着色器中丢失纹理定义

标头后PHP会话被破坏/丢失