phpcurlcookie
楼主可以借鉴下,首先,利用curl发送post请求登录login.php,成功,并且保存了cookie文件。
第二步,post发送数据包到co_get_corule.php,失败,得到登录页面的源码。
于是,尝试简单的get请求,get获取index.php,同上,依旧是cookie没带上的效果。
第三步,检查cookie文件,确实存在,且内容也是正确的。如果楼主有时间的话,可以多去后盾人学习,里面有不错的东西
② php+curl 怎么模拟cookie信息进行网页抓取 在线等
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, '文件名'); // 将该次请求完成后 cookie信息保存到文件
curl_setopt($ch, CURLOPT_COOKIEFILE, '文件名'); // 这次请求过程中 用到的cookie信息 的文件
模拟cookie 你可以先curl一次那页面 获取到cookie之后 , 留待下次 用CURLOPT_COOKIEFILE 发送该段cookie 进行模拟
③ php,用curl写个post登陆并取回cookies的代码
要在文件中保存COOKIE的信息,你的curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_file);中的$cookie_file必须是要保存cookie信息的文件名,最最关键的一点,这个文件名是必须要带绝对路径,否则是不行的,如果文件带上绝对路径的话,会在文件中以Netscape格式保存所有的cookie信息。
还有一个需要说明的,COOKIE必须指定有效期,如果没有指定有效期的话,默认的浏览器关闭COOKIE就失效。这种COOKIE信息在内存中存放,不会写入硬盘的。
这两个方面你都需要考虑。用绝对路径,保存一个长效的COOKIE,肯定可以成功!
④ php如何带cookies访问需要登录的网站
使用curl
CURLOPT_COOKIE 设定HTTP请求中"Cookie: "部分的内容。多个cookie用分号分隔,分号后带一个空格(例如, "fruit=apple; colour=red")。
CURLOPT_COOKIEFILE 包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。
CURLOPT_COOKIEJAR 连接结束后保存cookie信息的文件。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 请求的地址
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiesfile); // 连接结束后保存cookie信息的文件
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiesfile); // 请求时发送的cookie信息文件
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);