本文实例讲述了PHP简单实现模拟登陆功能。分享给大家供大家参考,具体如下:
在不考虑验证码的情况一下,php实现模拟登陆,网上给的办法一般是采用curl来模拟实现,但是curl实现的是服务器端与服务器端建立了会话,只能模拟登陆之后获取登陆之后的数据,无法将cookie信息种植到客户端上(至少目前本人查找没有找到办法)最后自己通过隐藏的iframe来实现。
1、curl实现模拟登陆的代码,(只是实现服务器与服务器建立会话,其实并没有在客户端与服务器之间建立会话)
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
|
<?php
$cookie_jar = tempnam( './tmp' , 'cookie' );
$ch = curl_init();
curl_setopt( $ch , CURLOPT_URL, 'http://192.168.0.22/logincheck.php' );
curl_setopt( $ch , CURLOPT_POST, 1);
$request = 'UNAME=admin&PASSWORD=123456' ;
curl_setopt( $ch , CURLOPT_POSTFIELDS, $request );
//把返回来的cookie信息保存在$cookie_jar文件中
curl_setopt( $ch , CURLOPT_COOKIEJAR, $cookie_jar );
//设定返回的数据是否自动显示
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1);
//设定是否显示头信息
curl_setopt( $ch , CURLOPT_HEADER, false);
//设定是否输出页面内容
curl_setopt( $ch , CURLOPT_NOBODY, false);
curl_exec( $ch );
curl_close( $ch );
//get data after login
$ch2 = curl_init();
curl_setopt( $ch2 , CURLOPT_URL, 'http://192.168.0.22/general/' );
curl_setopt( $ch2 , CURLOPT_HEADER, false);
curl_setopt( $ch2 , CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch2 , CURLOPT_COOKIEFILE, $cookie_jar );
$orders = curl_exec( $ch2 );
echo $orders ;
exit ;
echo '<pre>' ;
echo strip_tags ( $orders );
echo '</pre>' ;
curl_close( $ch2 );
?>
|
2、通过隐藏的iframe实现客户端与服务器端的通信(肯能带来一定的安全隐患)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
< html >
< title ></ title >
< body >
<?
$goURL="http://192.168.0.22/general/email/";
?>
< iframe name = "hiddenLoginFrame" onload = "get_pass()" src = "ceshi1.php" id = "hiddenLoginFrame" width = 0 height = 0 frameborder = 0 scrolling = no style = "display:none;" >
</ iframe >
< script Language = "JavaScript" >
function get_pass()
{
window.open("<?=$goURL ?>");
window.close();
}
</ script >
</ body >
</ html >
|
ceshi1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<html>
<head>
<title>ceshi</title>
</head>
<body onload= "get_pass1();" >
<form name= "form1" method= "post" target= "hiddenLoginFrame" action= "http://192.168.0.22/logincheck.php" >
<input type= "text" value= "admin" name= "UNAME" >
<input type= "text" value= "123456" name= "PASSWORD" >
</form>
</body>
<script Language= "JavaScript" >
function get_pass1()
{
//document.form1.action=u_url;
document.form1.submit();
}
</script>
</html>
|
希望本文所述对大家PHP程序设计有所帮助。
原文链接:http://blog.csdn.net/zhao1234567890123456/article/details/42089251