php cURL cookies/身份验证未粘滞?
我正在学习PHP中的cURL,需要对网页进行身份验证,并将会话存储在cookie中。我可以很好地登录,但是当我尝试使用cookie加载另一个页面时,我没有得到任何输出。很晚了,我肯定我错过了一些愚蠢的事情,但是我想如果不这样做我就睡不着了php cURL cookies/身份验证未粘滞?,php,cookies,curl,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_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;
}
编辑
我正在登录https://.. 不包括curl_setopt($curl_p,CURLOPT_SSL_VERIFYPEER,false);在if()中。。块添加它似乎起到了作用。再次感谢大家 $svck是否指向可写文件位置?是否创建了cookie(即写入磁盘)?是,正在创建文件;它们看起来就像你所期望的那样。可能“CURLOPT_Cookie文件”放错了位置,如果你把它向上移动,它很可能会工作。您需要在preg_match块之外设置此选项。$svck是否指向可写文件位置?是否创建了cookie(即写入磁盘)?是,正在创建文件;它们看起来就像你所期望的那样。可能“CURLOPT_Cookie文件”放错了位置,如果你把它向上移动,它很可能会工作。您需要在preg_匹配块之外设置此选项。
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