我运行以下测试以验证我的代码是否正常工作:
curl -L -i -X POST -d 'json={"orderBy":0,"maxResults":50}' http://mysite.com/ctlClient/
我打电话给: http: //mysite.com/ctlClient/index.php:
session_unset();
session_start();
//pass data to _SESSION
foreach($_POST as $key => $value){
$_SESSION[$key] = $value;
}
// redirect to `/fwf/online/index.php`
ctlGotoSameDomain("/fwf/online/");
重定向后,我调用/fwf/online/index.php
:
<?php
session_start();
....
class fwfOnline {
public function __construct() {
msqLogFile('test/test_max',$_SESSION);
// here is my problem, $_SESSION is empty, :(
$this->json = isset($_SESSION['json']) ? $_SESSION['json'] : null;
global $gConfig;
if ($gConfig['soapDebug'])
msqLogFile("fwf/post", Array('post' => 'Request: '.$this->json));
$this->response = $this->getResponse();
echo $this->response;
}
....
在我的日志中,mysite.com/ctlClient/index.php
我看到 $_SESSION 有数据但/fwf/online/index.php
它是空的。
有人能告诉我我错过了什么吗?
谢谢,
[编辑] 来自@rr-
我打印了两个会话 ID 并得到了区别:
"2013-07-05 09:44:31","Session ID: ihpfs1skrp792gncgancb02516"
"2013-07-05 09:44:31","Session ID: tp6ejtl1tj9bigrgsi3jt6h9a1"
为什么会发生?
[使固定]
关于@rr-
回答我发现了问题,
我需要添加-b
到我的脚本以启用 cookie。CURL 默认不使用它们,这个问题导致会话 ID 问题。
谢谢rr-