Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP会话信息传递给cURL_Php_Jquery_Session_Curl - Fatal编程技术网

将PHP会话信息传递给cURL

将PHP会话信息传递给cURL,php,jquery,session,curl,Php,Jquery,Session,Curl,我在我的站点和cURL请求之间传递会话数据时遇到问题 代码: 此代码位于demo.xyz.com上,它从www.abc.com上的数据库中自动验证用户,并在成功登录时创建会话变量“session_user_ID”。 登录后,它使用jQuery.load()函数向“www.abc.com/dashboard.php”发出cURL请求 $("#dash").load("get-rem-page.php?p=http://www.abc.com/dashboard.php").html("Loadin

我在我的站点和cURL请求之间传递会话数据时遇到问题

代码:
此代码位于demo.xyz.com上,它从www.abc.com上的数据库中自动验证用户,并在成功登录时创建会话变量“session_user_ID”。
登录后,它使用jQuery.load()函数向“www.abc.com/dashboard.php”发出cURL请求

$("#dash").load("get-rem-page.php?p=http://www.abc.com/dashboard.php").html("Loading...");
get-rem-page.php包含以下代码:

<?php
$url = $_REQUEST['p'];

$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,$url);
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle, CURLOPT_COOKIESESSION, true); 

curl_setopt($curl_handle, CURLOPT_COOKIE,session_name().'='.session_id());
curl_setopt($curl_handle, CURLOPT_COOKIEFILE, 'cookies.txt'); // set cookie file to given file 
curl_setopt($curl_handle, CURLOPT_COOKIEJAR, 'cookies.txt'); 


$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

if (empty($buffer))
{
    print "<p>Unable to load remote page</p>";
}
else
{
    print $buffer;
}
?>

www.abc.com上dashboard.php的代码如下:

<?php
session_start();
include "classes/local_info.php";

$objCon = new cD;
$objFun = new cF;

$link=$objCon->connectMYSQL();
$vCon = $objCon->connectDB($link);
if($vCon==false){
    echo "DB Error";
    exit;
}
echo "i am in dashboard.php & sessionid = ".$_SESSION["SESSION_USER_ID"]."<hr />";
$id = $_SESSION["SESSION_USER_ID"];
?>
<p>Welcome member number <?php echo $_SESSION["SESSION_USER_ID"];?></p>

欢迎会员号码

DIV(id:dash)中的输出为

我在dashboard.php&sessionid=
欢迎会员nmber

问题:

dashboard.php中的会话变量为空。需要传递此会话值,而不对dashboard.php进行任何更改。已经尝试了很多关于CURLOPT_COOKIE的选项。。但似乎都不管用。需要专家级的openion。

我曾多次玩过curl和Cookie,最终的工作代码如下:

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);

    curl_setopt($ch, CURLOPT_COOKIEJAR, session_name().'='.md5(session_id()));
    curl_setopt($ch, CURLOPT_COOKIE, session_name().'='.md5(session_id()));

这与货物崇拜编码是分不开的
CURLOPT_COOKIEJAR
接受一个文件名,还接受“句柄关闭时保存所有内部cookie的文件名,例如在调用curl_close后。”它对请求没有影响,可能是这样。在我最终让它工作之后,我对尝试改变任何东西都没有兴趣:)