我正试图通过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>";
提前谢谢。
请参阅此链接在本地主机上运行,但在服务器上不起作用。(PHP cURL)我想你的问题也是一样的。我可以补充一点,最好使用一些rand()来使用不同的cookie名称,因为如果你从外部调用脚本,不同的人将共享同一个cookie,这将不起作用。
另外,你应该把你的登录名和密码作为问题的一部分。我希望你不要在其他服务中使用相同的密码。