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 相关文章推荐
一个数据采集类
Feb 14 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
php修改文件上传限制方法汇总
Apr 07 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHP写的简单数字验证码实例
May 23 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
php图片合成方法(多张图片合成一张)
Nov 25 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处理json格式数据经典案例总结
2016/05/19 PHP
php实用代码片段整理
2016/11/12 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
限制复选框的最大可选数
2006/07/01 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
js星星评分效果
2014/07/24 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
如何更优雅地写python代码
2019/07/02 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
护理自我鉴定范文
2013/10/06 职场文书
机电一体化专业推荐信
2013/12/03 职场文书
企业内部培训方案
2014/02/04 职场文书
教代会闭幕词
2015/01/28 职场文书
小学中队长竞选稿
2015/11/20 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis