‘壹’ php中模拟登录的验证码问题应该如何解决
基本思路:
首先获取一个cookies值,再带着这个cookies去获取验证码图片,你再带着验证码值和登录数据去模拟post登录。下面是一个模拟获取验证码的。
这里忽略获取cookies的过程。注意文件为UTF-8无BOM格式
?php
header('Content-Type:image/png');
$url="http://hbyw.e21.e.cn/global/gd.php";//图片链接
$ch=curl_init();
//Cookie:PHPSESSID=
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_COOKIE,'PHPSESSID=');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_TIMEOUT,0);//忽略超时
curl_setopt($ch,CURLOPT_NOBODY,false);
$str=curl_exec($ch);
curl_close($ch);
‘贰’ 如何通过php程序模拟用户登录
模拟用户可以用php的curl的post,例如
$url = "http://www.uzuzuz.com";
$post_data = array ("username" => "uzuzuz","password" => "12345");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
具体参考:http://www.uzuzuz.com/article/4.html
‘叁’ 腾讯PHP面试题,PHP如何模拟POST提交登录求详细代码
大概流程是
先构建要传输的数据
再使用php的stocket模拟post请求
例子,比如我打开这个页面所用到的数据就是(这里用的是GET请求,改成POST就行了)
$fp=fsockopen(主机ip,端口号);
fputs($fp,数据字符串);
while(!feof($fp)){
//这里是输出请求所得到的回应数据
$result.=fgets($fp,128);
}
更多请自行网络php模拟post请求
因为我以前在工程实例中做过,所以比较了解
纯手打,望采纳
话说,这个问题过了就能进腾讯?门槛太低了吧。。。
‘肆’ PHP的curl模拟·登录老是失败出现了405错误
405 是指请求的 URL 不支持请求的方法, htm(除伪静态)是静态页面,是只能使用 get 方法的,而你要登录,要用post,而你这里也确实是用的 post,那么我觉得你应该是 URL 取错了。像这种 post 的地址都要是有程序处理的,你再回去看看原来页面中 form 上的 action 地址吧