当前位置:编程学习 > php >>

php 伪造post

我想写段代码让php 自动登录 发布内容~ 网上自己看了些内容,不过还是遇到一些问题。 假设网站 a 页面是登录页面 ,a 页面填好数据后跳至b 页面 ,b 页面检查post的值是否正确,如果正确则跳至c 页面 我想做的是自动登录c页面发布内容。但是不知道c页面需要伪造什么样的post 数据。(我现在甚至搞不清b页面是post一组加工的数据给c页面 还是 生成一个短时效的cookie)
答案:一般登陆是需要COOKIE支持的,用PHP的curl系列方法可以实现:
1.先用curl提交数据到b登陆一下,保存cookie,
2.然后再用crul请求c页面。
对于curl的操作,你就参考下面的程序吧。
$url = "b.php";
$data = “p1=xxx&p2=xxx”;//这里的参数是要post过去的
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址     
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $this->_HTTP_USER_AGENT); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_COOKIEJAR, ‘F:/cookie.txt’); // 存放Cookie信息的文件名称
curl_setopt($curl, CURLOPT_COOKIEFILE, ‘F:/cookie.txt’); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_REFERER, '');
$tmpInfo = curl_exec($curl); // 执行操作,这里就是返回的结果

上一个:php缓存类 自动增加目录的功能 实现
下一个:PHP碰到一个怪问题,做一个排班表的时候,循环显示时间的时候到第五个就多加了一秒!!!!怪

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,