尽我所能,我无法让 curl 传递PHPSESSID
cookie。我的设置与其他几个人所描述的类似,但我无法让任何建议的解决方案发挥作用。
我有一个向pageA.php
. pageA.php
需要来自另一台服务器上的一些信息pageB.php
,所以我正在使用 curl。 pageB
维护我需要进出我的页面的会话状态。
我可以从 to 传递其他 cookie pageA
,pageB
但不能传递PHPSESSID
cookie。
以下工作(一个cookie到达pageB
):
$options[CURLOPT_COOKIE] = "myPHPSESSID=" . $sessionId;
以下没有:
$options[CURLOPT_COOKIE] = "PHPSESSID=" . $sessionId;
(我构建了一个 $options 数组,然后将其传递给curl_set_opt_array
)
事实上,后者会导致某种我无法辨别的错误,因为我对curl_exec
永不返回的调用(并且pageB
永远不会到达)。
我尝试设置标题而不是使用 CURLOPT_COOKIE,但也没有成功:
$options[CURLOPT_HTTPHEADER][] = "Cookie: myPHPSESSID=" . $sessionId;
以上工作正常,但
$options[CURLOPT_HTTPHEADER][] = "Cookie: PHPSESSID=" . $sessionId;
才不是。
PHP 显然不希望我手动设置 PHPSESSID。我不确定它是否相关,但我从来没有在 pageA 上调用过start_session()
(尽管我尝试这样做并且得到了相同的结果)。
我意识到我可以(可能)只是将会话 ID 作为不同名称的 cookie 传递,并调用 pageBset_session_id()
或类似的东西。但我真的很想知道为什么我正在做的事情不起作用,因为我宁愿修复我做错的事情而不是创建一个解决方法。如果有帮助,我可以提供一些正在搜索的各种标题的转储,但我认为这个问题现在已经足够长了。
谢谢...