CURL管理会话

时间:2016-05-16 03:30:05

标签: php session curl

我正在尝试通过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>";

提前致谢。

1 个答案:

答案 0 :(得分:0)

请参阅此链接Running on localhost but does not work on the server. (PHP cURL)我猜你的问题是一样的。我可以补充说,使用一些rand()来更好地使用不同的cookie名称,因为如果你从外面调用脚本,不同的人将共享相同的cookie,它将无法工作。

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