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 相关文章推荐
mysql_num_rows VS COUNT 效率问题分析
Apr 23 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP实现图片压缩
Sep 09 PHP
laravel 判断查询数据库返回值的例子
Oct 11 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和ACCESS写聊天室(四)
2006/10/09 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
跨浏览器的事件对象介绍
2012/06/27 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
python WindowsError的错误代码详解
2017/07/23 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
Python 多进程、多线程效率对比
2020/11/19 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
selenium自动化测试入门实战
2020/12/21 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
Java面试题汇总
2015/12/06 面试题
老师的检讨书
2014/02/23 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
HttpClient实现文件上传功能
2022/08/14 Java/Android