我正在尝试通过CURL登录网站。它运行良好,但不保存会话。主要是需要保存会话。还请告诉我如何使用本次会议访问该网站并保持登录状态。
这是我的代码。
function SiteLogin($url,$data){
$fp = fopen("cookie.txt", "w");
fclose($fp);
session_write_close();
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_TIMEOUT, 40000);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_HTTPHEADER, array(
'Authorization: 15',
'Content-Type: application/json'
));
curl_setopt($login, CURLOPT_POSTFIELDS, json_encode($data));
ob_start();
return curl_exec ($login);
ob_end_clean();
curl_close ($login);
unset($login);
}
$site = "http://picvidcollage.com:6089/pvc/Login";
$data = array(
'email' => 'users@domain.com',
'pwd' => 's3cr3t',
);
$GrabData = SiteLogin($site, $data);
$GrabData = json_decode($GrabData, TRUE);
echo"<PRE>";
print_r($GrabData);
echo"</PRE>";
提前致谢。
答案 0 :(得分:0)
请参阅此链接Running on localhost but does not work on the server. (PHP cURL)我猜你的问题是一样的。我可以补充说,使用一些rand()来更好地使用不同的cookie名称,因为如果你从外面调用脚本,不同的人将共享相同的cookie,它将无法工作。
另外,您应该将登录名和密码作为问题的一部分。我希望你不要为你的其他服务使用相同的密码。