php cURL cookies /身份验证不坚持?

时间:2011-06-29 07:27:47

标签: php cookies curl

我正在学习PHP中的cURL,需要对网页进行身份验证,并将会话存储在cookie中。我能够很好地登录,但是当我尝试使用cookie加载另一个页面时,我没有得到任何输出。现在已经很晚了,而且我确信我有一些愚蠢的东西,但是我不认为没有这个工作就能睡觉。

$curl_p = curl_init($auth_url);
curl_setopt($curl_p, CURLOPT_COOKIEJAR, $svck);
curl_setopt($curl_p, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_p, CURLOPT_RETURNTRANSFER, 1);
$cres_auth = curl_exec($curl_p);

if(!preg_match("/Successful/i",$cres_auth))
    {
    ?><pre><?
            print_r("Login was unsuccessful.  URL passed was:");
    ?><br><br><?
            print_r($auth_url);
    ?></pre><?
    }else
    {
    ?><pre><?
            print_r("Login was successful.");
    ?></pre><?

    $curl_p = curl_init($data_url);
    curl_setopt($curl_p, CURLOPT_COOKIEFILE, $svck);
    curl_setopt($curl_p, CURLOPT_URL, $data_url);
    $cres_data = curl_exec($curl_p);
    echo $cres_data;
    }

鉴于正确的凭据,我得到“登录成功”,否则失败。如果成功,我什么也得不到;我需要做curl_close()并重新初始化吗?谢谢!

修改

不确定是否重要,但这是正常登录时(通过浏览器)响应的标题:

POST /admin HTTP/1.1
Host: url.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: https://url.com/admin?cmd=submit_logout
Cookie: svanoncollected=collected; password=4cf0ed4321adabbf46784e123a0316fb;     extension=4470;     iar=8123123f2b3e3541456cae084aeae77f; 
lang_locale=en_us
Content-Type: application/x-www-form-urlencoded
Content-Length: 96

HTTP/1.1 200 OK
Date: Wed, 29 Jun 2011 07:43:11 GMT
Server: Apache/2.2.3 (Fedora)
Set-Cookie: lang_locale=en_us; path=/
Set-Cookie: admin_pass=74927c9b91234d2ffb95e60fc832ffe0; path=/
Set-Cookie: admin_name=user; path=/
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

修改

我登录https:// ..并且没有包含curl_setopt($ curl_p,CURLOPT_SSL_VERIFYPEER,false);在if()..块中。添加它似乎有效。再次感谢大家!

0 个答案:

没有答案