Chr*_*her 2 php scripting session curl
我试图在我的应用程序中的脚本之间发送数据.
问题是会话ID没有响应.
脚本1是......
<?php
session_start();
$_SESSION['id'] = 1;
$data = "data to be sent to script";
$ch = curl_init("http:.../myscript.php");
$nvp = "&data=$data";
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);
?>
Run Code Online (Sandbox Code Playgroud)
myScript.php是......
<?php
session_start();
$id = $_SESSION['id'];
$data = $_POST['data'];
$result = function idData($id, $data); // returns matching results.
echo "Session Id = $id <br />";
echo "Id result = $result <br />";
?>
Run Code Online (Sandbox Code Playgroud)
但是,myScript.php无法按正常方式访问会话数据.
有没有解决这个问题?可能的原因是什么?
谢谢
我相信您正在寻找CURLOPT_COOKIE
curl_setopt($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
Run Code Online (Sandbox Code Playgroud)
在脚本1中,CURLOPT_COOKIE如果您自己跟踪响应中的会话ID,则可以使用.
如果它要向myscript.php发出多个创建会话的请求,我认为你不需要或不想在脚本1中使用session_start.
在脚本1中使用它:
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt'); // set cookie file to given file
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt'); // set same file as cookie jar
Run Code Online (Sandbox Code Playgroud)
然后正常提出您的请求.当请求完成时,myscript.php设置的任何cookie都将保存到cookie jar文件中,在发送请求之前,将检查cookiefile是否发送任何cookie.
您可以从curl请求手动跟踪php会话cookie并使用CURLOPT_COOKIE它.