CURL管理会话


CURL manage Session

我正试图通过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,这将不起作用。

另外,你应该把你的登录名和密码作为问题的一部分。我希望你不要在其他服务中使用相同的密码。