开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1769|回复: 18
收起左侧

[已解决] php模拟登陆无法获取cookies

 关闭 [复制链接]
结帖率:82% (14/17)
发表于 2016-8-31 20:44:53 | 显示全部楼层 |阅读模式   江苏省苏州市
9精币
php模拟登陆无法获取  
www.weather.com.cn
的cookie  ,有什么解决方法吗?


补充内容 (2016-8-31 20:55):
@anyuezhiji

最佳答案

查看完整内容

币太少,我就敷衍下!!给多点币咯!

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
发表于 2016-8-31 20:44:54 | 显示全部楼层   广西壮族自治区南宁市

  1. /*        发包函数 */
  2. function fopen_send($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 10000, $block = TRUE) {
  3.         $return = '';
  4.         $matches = parse_url($url);
  5.         !isset($matches['host']) && $matches['host'] = '';
  6.         !isset($matches['path']) && $matches['path'] = '';
  7.         !isset($matches['query']) && $matches['query'] = '';
  8.         !isset($matches['port']) && $matches['port'] = '';
  9.         $host = $matches['host'];
  10.         $path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
  11.         $port = !empty($matches['port']) ? $matches['port'] : 80;
  12.         if($post) {
  13.                 $out = "POST $path HTTP/1.0\r\n";
  14.                 $out .= "Accept: */*\r\n";
  15.                 //$out .= "Referer: $boardurl\r\n";
  16.                 $out .= "Accept-Language: zh-cn\r\n";
  17.                 $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
  18.                 $out .= "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\r\n";
  19.                 $out .= "Host: $host\r\n";
  20.                 $out .= 'Content-Length: '.strlen($post)."\r\n";
  21.                 $out .= "Connection: Close\r\n";
  22.                 $out .= "Cache-Control: no-cache\r\n";
  23.                 $out .= "Cookie: $cookie\r\n\r\n";
  24.                 $out .= $post;
  25.         } else {
  26.                 $out = "GET $path HTTP/1.0\r\n";
  27.                 $out .= "Accept: */*\r\n";
  28.                 //$out .= "Referer: $boardurl\r\n";
  29.                 $out .= "Accept-Language: zh-cn\r\n";
  30.                 $out .= "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\r\n";
  31.                 $out .= "Host: $host\r\n";
  32.                 $out .= "Connection: Close\r\n";
  33.                 $out .= "Cookie: $cookie\r\n\r\n";
  34.         }

  35.         if(function_exists('fsockopen')) {
  36.                 $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
  37.         } elseif (function_exists('pfsockopen')) {
  38.                 $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
  39.         } else {
  40.                 $fp = false;
  41.         }
  42.         if(!$fp) {
  43.                 return '';
  44.         } else {
  45.                 stream_set_blocking($fp, $block);
  46.                 stream_set_timeout($fp, $timeout);
  47.                 @fwrite($fp, $out);
  48.                 $status = stream_get_meta_data($fp);
  49.                 if(!$status['timed_out']) {
  50.                         while (!feof($fp)) {
  51.                                 if(($header = @fgets($fp)) && ($header == "\r\n" ||  $header == "\n")) {
  52.                                         break;
  53.                                 }
  54.                         }

  55.                         $stop = false;
  56.                         while(!feof($fp) && !$stop) {
  57.                                 $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));
  58.                                 $return .= $data;
  59.                                 if($limit) {
  60.                                         $limit -= strlen($data);
  61.                                         $stop = $limit <= 0;
  62.                                 }
  63.                         }
  64.                 }
  65.                 @fclose($fp);
  66.                 return $return;
  67.         }
  68. }
  69. function httpGet($url, $data=array(), $header=array(), $timeout=30) {
  70.         $ch = curl_init();  
  71.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查  
  72.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);  // 从证书中检查SSL加密算法是否存在  
  73.         curl_setopt($ch, CURLOPT_URL, $url);  
  74.         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  
  75.         curl_setopt($ch, CURLOPT_POST, true);  
  76.         curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  
  77.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
  78.         curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  79.         $response = curl_exec($ch);
  80.         if($error=curl_error($ch)){  
  81.                 die($error);  
  82.         }
  83.         curl_close($ch);
  84.         return $response;
  85. }
  86. function httpPost($uri,$param=array(),$header=array()){
  87.         $ch = curl_init();
  88.         curl_setopt($ch, CURLOPT_URL, $uri);
  89.         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  90.         curl_setopt($ch, CURLOPT_POST, 1);
  91.         curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
  92.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  93.         $response = curl_exec($ch);
  94.         curl_close($ch);
  95.         return $response;
  96. }
复制代码

币太少,我就敷衍下!!给多点币咯!

点评

我再开个贴,具体完整的实现方式能给出吗?多少币?   江苏省苏州市  发表于 2016-9-1 19:31

评分

参与人数 1好评 +1 精币 +1 收起 理由
percher + 1 + 1 欢迎常来帮助新人,谢谢。

查看全部评分

回复

使用道具 举报

结帖率:80% (4/5)

签到天数: 6 天

发表于 2016-8-31 20:47:00 | 显示全部楼层   江苏省苏州市
去定制板块  更快可以解决你的问题

点评

这种小问题也要定制,想钱想疯了吧   江苏省苏州市  发表于 2016-8-31 20:49
回复

使用道具 举报

结帖率:82% (14/17)
 楼主| 发表于 2016-8-31 20:55:57 | 显示全部楼层   江苏省苏州市
回复

使用道具 举报

结帖率:100% (4/4)

签到天数: 4 天

发表于 2016-8-31 21:20:28 | 显示全部楼层   上海市上海市
你用的CURL?如果是你仔细的检查一下参数配置

点评

我是用的 CURL,能帮我写出来吗?我写的都获取不到   江苏省苏州市  发表于 2016-9-1 10:06
我是用的 CURL,能帮我写出来吗?我写的都获取不到   江苏省苏州市  发表于 2016-9-1 10:06
回复

使用道具 举报

结帖率:70% (26/37)
发表于 2016-8-31 21:46:10 | 显示全部楼层   福建省福州市
建议去定制板块
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2016-8-31 22:40:47 | 显示全部楼层   湖南省长沙市
你抓包分析下,如果抓的包也没cookie
很可能cookie是通过javascript生成的

点评

抓包和易语言都能获取到cookie ,但是使用PHP模拟就获取不到   江苏省苏州市  发表于 2016-9-1 10:07
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2016-8-31 23:04:22 | 显示全部楼层   湖南省长沙市
  
网页_访问S (“http://www.weather.com.cn”, 1, , , cookeis)
调试输出 (cookeis)
网页_访问 (“http://www.weather.com.cn”, 1, , , cookeis)
调试输出 (cookeis)
网页_访问_对象 (“http://www.weather.com.cn”, 1, , , cookeis)
调试输出 (cookeis)


i支持库列表   支持库注释   
spec特殊功能支持库


测试了下,都有返回cookie
  1. * “BIGipServerwww_pool=800654397.20480.0000”
  2. * “BIGipServerwww_pool=498664509.20480.0000”
  3. * “BIGipServerwww_pool=800654397.20480.0000”
复制代码


点评

易语言和抓包都能获取,这个我知道,但是我要PHP   江苏省苏州市  发表于 2016-9-1 10:07
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2016-8-31 23:06:02 | 显示全部楼层   湖南省长沙市
http://www.cnblogs.com/gavinwang/p/4342443.html
  1. //模拟登录
  2. function login_post($url, $cookie, $post) {
  3.     $curl = curl_init();//初始化curl模块
  4.     curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址
  5.     curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息
  6.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自动显示返回的信息
  7.     curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //设置Cookie信息保存在指定的文件中
  8.     curl_setopt($curl, CURLOPT_POST, 1);//post方式提交
  9.     curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息
  10.     curl_exec($curl);//执行cURL
  11.     curl_close($curl);//关闭cURL资源,并且释放系统资源
  12. }
复制代码

php模拟登陆

点评

我试过了,没用   江苏省苏州市  发表于 2016-9-1 10:08
回复

使用道具 举报

结帖率:100% (27/27)
发表于 2016-9-1 09:29:54 | 显示全部楼层   浙江省宁波市
自带浏览器的f12抓包看看

点评

是PHP模拟登陆,不是易语言   江苏省苏州市  发表于 2016-9-1 10:05
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表