首页 > PHP教程 > php开发知识文章

PHP代码实现简单的模拟登陆功能

这篇文章主要介绍了PHP代码实现简单的模拟登陆功能,涉及php使用curl实现模拟登陆的相关操作技巧,需要的朋友参考下

在不考虑验证码的情况下,php实现模拟登陆,一般是采用curl来模拟实现,

curl实现的是服务器端与服务器端建立了会话,只能模拟登陆之后获取登陆之后的数据,无法将cookie信息写到客户端上,最后通过隐藏的iframe来实现。

1、curl实现模拟登陆的代码(实现服务器与服务器建立会话,没有在客户端与服务器之间建立会话)

$cookie_jar = tempnam('./tmp', 'cookie');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://127.0.0.1/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://127.0.0.1/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实现客户端与服务器端的通信(有安全隐患)

<html>
<body>
<?php $goURL = "http://127.0.0.1/general/email/"; ?>
<iframe name="hiddenLoginFrame" onload="get_pass()" src="aa.php"
width=0 height=0 frameborder=0 scrolling=no style="display:none;"></iframe>
<script>
function get_pass() {
window.open("<?=$goURL ?>");
window.close();
}
</script>
</body>
</html>

aa.php

<html>
<body onload="get_pass1();">
<form name="form1" method="post" target="hiddenLoginFrame" action="http://127.0.0.1/aa.php">
<input type="text" value="admin" name="UNAME">
<input type="text" value="123456" name="PASSWORD">
</form>
</body>
<script>
function get_pass1() {
document.form1.submit();
}
</script>
</html>

php程序设计语言

以上就是本文PHP代码实现简单的模拟登陆功能的全部内容,希望本文所述对大家PHP程序设计有所帮助。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。