一尘不染

通过命令提示符执行PHP5脚本时是否可以读取cookie /会话值?

php

当我使用命令提示符执行php脚本时,需要从Cookie或会话中读取一些值。我怎样才能做到这一点?

如何从Windows命令提示符下访问Cookie或会话值?


阅读 320

收藏
2020-05-29

共1个答案

一尘不染

Cookies是从用户的Web浏览器发送的。当您从命令行执行php脚本时,没有浏览器可以发送或接收Cookie。没有访问或保存cookie的方法,除了您在命令行中传递的参数外,没有任何内容发送到脚本。

话虽如此,如果您知道某人的PHPSESSID cookie,则可以通过一种方法来读取该人已经访问过的会话。

假设某人已经使用Web浏览器访问了您的脚本,而他们的PHPSESSID为a1b2c3d4,而您想在其会话中执行该脚本。在命令行执行以下命令。

php -r '$_COOKIE["PHPSESSID"] = "a1b2c3d4"; session_start(); require("path_to_php_script.php");'

其中path_to_php_script.php是要执行的php脚本的路径。实际上,如果要执行的php文件本身启动了会话,则不必启动会话。因此,您可能需要实际尝试以下命令:

php -r '$_COOKIE["PHPSESSID"] = "a1b2c3d4"; require("path_to_php_script.php");'

好的,现在让我们说您不想访问某人的会话,而只是想像执行会话一样执行脚本。只需执行上一个命令,然后输入所需的任何sessionid。只要每次调用脚本时都使用相同的PHPSESSID,您的会话就将在两次调用脚本之间保持不变。

2020-05-29