网上的很多模拟登录程序,大都是通过服务程序apache之类的运行,获取到验证码之后显示在网页上,然后填上再POST出去,这样虽然看起来很友 好,但是既然模拟登录,登录后所干的事情就不一定是短时间完成的,所以这就要受到php最大执行时间的限制,而且有些操作还有可能权限不足。
本文提供了一个程序实例,思路就是获取到验证码之后把验证码存储为一个图片,然后程序休眠20秒,在20秒之后由用户手动查看图片,并把验证码填写 到code.txt文件中,20秒休眠完成后,程序会读code.txt的验证码,这样再带着验证码进行登录操作。具体代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
/**
* 模拟登录
*/
//初始化变量
$cookie_file = "tmp.cookie" ;
$login_url = "http://xxx.com/logon.php" ;
$verify_code_url = "/wp-content/uploads/202505/29/20252.jpg" , "w" );
fwrite( $fp , $img );
fclose( $fp );
echo "验证码取出完成,正在休眠,20秒内请把验证码填入code.txt并保存\\n" ;
//停止运行20秒
sleep(20);
echo "休眠完成,开始取验证码...\\n" ;
$code = file_get_contents ( "code.txt" );
echo "验证码成功取出:$code\\n" ;
echo "正在准备模拟登录...\\n" ;
$post = "username=maben&pwd=hahahaha&verifycode=$code" ;
$curl = curl_init();
curl_setopt( $curl , CURLOPT_URL, $url );
curl_setopt( $curl , CURLOPT_HEADER, false);
curl_setopt( $curl , CURLOPT_RETURNTRANSFER,1);
curl_setopt( $curl , CURLOPT_POSTFIELDS, $post );
curl_setopt( $curl , CURLOPT_COOKIEFILE, $cookie_file );
$result =curl_exec( $curl );
curl_close( $curl );
//这一块根据自己抓包获取到的网站上的数据来做判断
if (substr_count( $result , "登录成功" )){
echo "登录成功\\n" ;
} else {
echo "登录失败\\n" ;
exit ;
}
//OK,开始做你想做的事吧。。。。。
|
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关文章
猜你喜欢
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-06-04 38
-
2025-05-29 82
-
2025-05-29 47
-
2025-05-27 39
-
2025-06-04 15
热门评论