PHP include_一旦链接导致在每个include语句之后创建不同的cookie

PHP include_一旦链接导致在每个include语句之后创建不同的cookie,php,jquery,json,cookies,Php,Jquery,Json,Cookies,问题: 我尝试检索JSON数据,在我使用以前的登录链接登录后,这些数据应该会返回。 在获取json数据之前,我必须先使用前面的链接登录: “…server.net/System?action=login&user=ro&password=12” 返回=>{“结果”:“确定”,“角色”:“管理”} 上面说我已经登录了 特定第二链接的调用: “…server.net/System?action=getAllTransfers” 返回=>{“结果”:“错误”,“原因”:“无效会话ID”} 这意味着我没

问题: 我尝试检索JSON数据,在我使用以前的登录链接登录后,这些数据应该会返回。 在获取json数据之前,我必须先使用前面的链接登录:

“…server.net/System?action=login&user=ro&password=12”

返回=>{“结果”:“确定”,“角色”:“管理”} 上面说我已经登录了

特定第二链接的调用:

“…server.net/System?action=getAllTransfers”

返回=>{“结果”:“错误”,“原因”:“无效会话ID”} 这意味着我没有登录

包括_once('server.net/System?action=login&user=ro&password=12')

返回的标头:
数组([0]=>HTTP/1.1200 OK[1]=>服务器:Apache Coyote/1.1[2]=>Set Cookie:JSESSIONID=F2981D6C0C67011234B2E8B9F067FECF;Path=/ixaropagersystem/;HttpOnly[3]=>内容长度:30[4]=>日期:2017年5月29日星期一08:13:00 GMT[5]=>连接:关闭)


包括一次('server.net/System?action=getAllTransfers')

返回的标头:
数组([0]=>HTTP/1.1200 OK[1]=>Server:Apache Coyote/1.1[2]=>Set Cookie:JSESSIONID=62D3828A1DB0E9DE91649D6F0E8016B0;Path=/ixaropagersystem/;HttpOnly[3]=>内容长度:48[4]=>日期:2017年5月29日星期一08:13:00 GMT[5]=>连接:关闭)

问题是,在发送正确的登录名和密码并尝试获取json数据后,我不会保持登录状态。不知何故,我的php服务器调用php include_once(“…”)的第一个和第二个链接时,每次都会从服务器获得一个新的JSESSIONID cookie,该cookie应该会返回json数据

问题:有没有办法克服这种行为,或者只为include_预定义一个cookie(jsessionId),它可以从我的php服务器发送到接收jsessionId cookie的另一个服务器?因为每次调用链接时,我都会从另一台服务器获得一个新的jsessionId,我不知道如何保持会话

当我手动将链接放入firefox时,它会正常工作。但一旦它不起作用,就使用include_

我必须说,我不能设置允许CORS的头,也不能以某种方式在另一台服务器上更改代码


很多Thx

好的,我终于找到了一个好办法:

解决方案: 第二个链接的调用方式必须确保通过调用第一个链接捕获的cookie和正确的登录过程将与第二个请求一起发送

# get the cookie
$firstLink = 'server.net/System?action=login&user=ro&password=12';
$headers = get_headers($firstLink);
$cookie = substr($headers[2], 4);

$opts = array(
    'http'=>array(
        'method'=>"POST",
        'header'=>"Accept-language: pl\r\n" .

            $cookie // == 'Cookie: JSESSIONID=B1BA33657E8DD2CD1736C10B62D61DC4\r\n'
    )
);
$context = stream_context_create($opts);

# oppens the 2nd link with specific cookie in the HTTP-Header
$secondLink = 'server.net/System?action=getAllTransfers';    
$expectedOutput = file_get_contents($secondLink , false, $context);
echo $expectedOutput;

在设置cookie时,您可以设置会话cookie的路径。这个问题可以通过session\u set\u cookie\u params()php函数来解决。您好vartika,谢谢您的回复。我试图获得的是登录链接中使用的旧JSESSIONID。会话设置cookie参数(1600,/System,/server.net)$cookie=会话获取cookie参数();而(list($key,$val)=each($cookie)){echo$key'.:'.$val'.
';}或者更好,如何在每次链接调用中始终获取新的JSSessionID并停留在第一个?