使用CURL登录页面

时间:2014-06-28 10:52:34

标签: php curl

我遇到使用CURL登录网站的问题。我读了会话ID但要使用它,我必须重新加载与更改相关的页面。如何动态使用当前会话ID?

     <?php
    $post = 'login=testowe12&ampregister=0&password=testowe12&cookie_check=1&_xfToken=&redirect='.urlencode("http://gsmx.co");

    $handle = curl_init('http://gsmx.co/logowanie/login');
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_HEADER, 1);     
    curl_setopt($handle, CURLOPT_HTTPHEADER, array(
    'Host: gsmx.co',
    'Content-Length: 93',
    'Cache-Control: max-age=0',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Origin: http://gsmx.co',
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
    'Content-Type: application/x-www-form-urlencoded',
    'Referer: http://gsmx.co/login',
    'Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4'));
    //'Cookie: xf_session='.$cookie["xf_session"].'; GCSCU_770734409090_H2=C=770734409090.apps.googleusercontent.com:S=81bef9fa0c3fbdaac13c33f8b709fc73474d3562.kvhqgGncJscCDSvW.7dde:I=1403792615:X=1403879015'));
    curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($handle, CURLOPT_POSTFIELDS, $post);
    $output = curl_exec($handle);

    preg_match('/^Set-Cookie:\s*([^;]*)/mi', $output, $cookie);
    parse_str($cookie[1], $cookie);

    echo $cookie["xf_session"].'<br>'.$output;
?>

问候

2 个答案:

答案 0 :(得分:1)

您需要使用CURLOPT_COOKIEJARCURLOPT_COOKIEFILE

curl_setopt($handle, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($handle, CURLOPT_COOKIEFILE, 'cookie.txt');

这会将所有Cookie保留在cookie.txt中,并且在发出新请求时,Cookie将从同一cookie.txt个文件中获取。这样,您就可以在连续的HTTP请求上维护会话。

答案 1 :(得分:0)

如果您想要保持登录状态,请在登录后的所有curl请求中使用相同的Cookie文件。