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 相关文章推荐
针对初学PHP者的疑难问答(2)
Oct 09 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
php中执行系统命令的方法
Mar 21 PHP
php正则表达式学习笔记
Nov 13 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
Feb 22 PHP
zend framework中使用memcache的方法
Mar 04 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
php封装json通信接口详解及实例
Mar 07 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
php通过session防url攻击方法
2014/12/10 PHP
php里array_work用法实例分析
2015/07/13 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
python矩阵的转置和逆转实例
2018/12/12 Python
python中的print()输出
2019/04/12 Python
Django框架安装方法图文详解
2019/11/04 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
python3中for循环踩过的坑记录
2020/12/14 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
外包公司软件测试工程师
2014/11/01 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript