卷曲不通过phpsessid

卷曲不通过phpsessid,php,curl,Php,Curl,尽管我可能会尝试,但我无法让curl通过PHPSESSIDcookie。我有一个类似于其他几个人所描述的设置,但我没有能够让任何建议的解决方案工作 我有一个页面,它向pageA.php发送get请求pageA.php需要来自另一台服务器上的pageB.php的一些信息,所以我使用curlpageB维护进出页面所需的会话状态 我可以将其他cookie从pageA传递到pageB,但不能传递PHPSESSIDcookie 以下工作(cookie到达pageB): $options[CURLOPT_C

尽管我可能会尝试,但我无法让curl通过
PHPSESSID
cookie。我有一个类似于其他几个人所描述的设置,但我没有能够让任何建议的解决方案工作

我有一个页面,它向
pageA.php
发送get请求
pageA.php
需要来自另一台服务器上的
pageB.php
的一些信息,所以我使用curl
pageB
维护进出页面所需的会话状态

我可以将其他cookie从
pageA
传递到
pageB
,但不能传递
PHPSESSID
cookie

以下工作(cookie到达
pageB
):
$options[CURLOPT_COOKIE]=“myPHPSESSID=”$会话ID

以下情况不适用:

$options[CURLOPT_COOKIE] =  "PHPSESSID=" . $sessionId;
(我构建一个$options数组,然后将其传递给
curl\u set\u opt\u数组

事实上,后者会导致某种我无法识别的错误,因为我对
curl\u exec
的调用从未返回(并且从未到达
pageB

我尝试设置标题而不是使用CURLOPT_COOKIE,但也没有成功:

$options[CURLOPT_HTTPHEADER][] = "Cookie: myPHPSESSID=" . $sessionId;
上面的方法很好,但是

$options[CURLOPT_HTTPHEADER][] = "Cookie: PHPSESSID=" . $sessionId;
没有

PHP显然不希望我手动设置PHPSESSID。我不确定它是否相关,但我在pageA上从未调用过
start\u session()

我意识到我可以(可能)将会话id作为不同名称的cookie传递,并让pageB call
设置会话id()
或类似的东西。但我真的很想知道为什么我所做的不起作用,因为我宁愿纠正我所做的错事,也不愿创建一个解决方案。如果有帮助的话,我可以提供一些正在ping的各种标题的转储,但我认为这个问题现在已经足够长了


谢谢…

呼叫
会话写入关闭()在curl\u exec之前

这救了我的命:(阅读解释)

例如:

<?php
session_start();
var_dump($_SESSION); //See what's in session
echo "<br>";



$c = curl_init('http://192.168.100.204/logintest/index.php?r=AccessTest/CheckAcess');
$parametros_post = 'action=verChau';
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $parametros_post);
curl_setopt($c, CURLOPT_VERBOSE, TRUE);
curl_setopt($c, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID']);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
session_write_close();
$page = curl_exec ($c);
echo "<br>";
echo "<br>";
echo $page;
curl_close ($c);


?>

谢谢,尽管我看到了这个建议,并尝试了一下,但没有效果。我的页面从不调用
start_session(),所以
会话写入关闭()
似乎没有任何效果。嗯,但是如果不启动任何会话,您从哪里获得$sessionID?您可以使用curl传递PHPSESSID,因为我使用Yii和纯脚本来传递。我已经用脚本更新了我的帖子。哦,很抱歉不清楚。
$sessionId
来自客户端浏览器。我的使用curl的php页面只是一个代理,用于解决跨域问题,因此它不维护任何会话状态。我从
$\u COOKIE
中读取了
$sessionId
,它伴随着从客户端到代理页面的每个请求。天哪!那是我的问题。。。谢谢