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://<span style="font-family: Arial, Helvetica, sans-serif;">192.168.0.22</span><span style="font-family: Arial, Helvetica, sans-serif;">/general/email/";</span>
?>
<iframe name="hiddenLoginFrame" οnlοad="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 οnlοad="get_pass1();">
<form name="form1" method="post" target="hiddenLoginFrame" action="http://<span style="font-family: Arial, Helvetica, sans-serif;">192.168.0.22</span><span style="font-family: Arial, Helvetica, sans-serif;">/logincheck.php"></span>
    <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>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值