PHP如何获取Cookie并实现模拟登录


Posted in PHP onJuly 16, 2020

一、定义Cookie存储路径

必须使用绝对路径

$cookie_jar = dirname(__FILE__)."/pic.cookie";

二、获取Cookie

将cookie存入文件

$url = "http://1.2.3.4/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
$content = curl_exec($ch);
curl_close($ch);

三、模拟浏览器获取验证码

该服务器验证码有漏洞,可以自己指定

取出cookie,一起提交给服务器,让服务器以为是浏览器打开登陆页面

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://1.2.3.4/getCheckpic.action?rand=6836.185874812305');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($ch);
curl_close($ch);

四、POST提交

$post = "name=2&userType=1&passwd=asdf&loginType=1&rand=6836&imageField.x=25&imageField.y=7";  
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://1.2.3.4/loginstudent.action");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$result=curl_exec($ch);
curl_close($ch);

五、到指定页面获取数据

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://1.2.3.4/accountcardUser.action");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);    
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$html=curl_exec($ch);
// var_dump($html);
curl_close($ch);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
Admin generator, filters and I18n
Oct 06 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 PHP
php+ajax实现无刷新动态加载数据技术
Apr 28 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 PHP
详解PHP中curl_multi并发的实现
Jun 08 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 #PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 #PHP
PHP xpath提取网页数据内容代码解析
Jul 16 #PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 #PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 #PHP
PHP number_format函数原理及实例解析
Jul 14 #PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 #PHP
You might like
用在PHP里的JS打印函数
2006/10/09 PHP
PHP 采集程序原理分析篇
2010/03/05 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
js页面跳转常用的几种方式
2010/11/25 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python中定义结构体的方法
2013/03/04 Python
Python处理中文标点符号大集合
2018/05/14 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Python os库常用操作代码汇总
2020/11/03 Python
python3中数组逆序输出方法
2020/12/01 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
医药代表个人的求职信分享
2013/12/08 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
公司节能减排倡议书
2014/05/14 职场文书
介绍信格式样本
2015/05/05 职场文书
工作建议书范文
2019/07/08 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
如何用python识别滑块验证码中的缺口
2021/04/01 Python