欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP简单实现模拟登陆功能示例

程序员文章站 2022-03-12 19:12:48
本文实例讲述了php简单实现模拟登陆功能。分享给大家供大家参考,具体如下: 在不考虑验证码的情况一下,php实现模拟登陆,网上给的办法一般是采用curl来模拟实现,但是c...

本文实例讲述了php简单实现模拟登陆功能。分享给大家供大家参考,具体如下:

在不考虑验证码的情况一下,php实现模拟登陆,网上给的办法一般是采用curl来模拟实现,但是curl实现的是服务器端与服务器端建立了会话,只能模拟登陆之后获取登陆之后的数据,无法将cookie信息种植到客户端上(至少目前本人查找没有找到办法)最后自己通过隐藏的iframe来实现。

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

<?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实现客户端与服务器端的通信(肯能带来一定的安全隐患)

<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

<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相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《php数组(array)操作技巧大全》、《php数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。