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


Posted in PHP onSeptember 15, 2017

本文实例讲述了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 相关文章推荐
用PHP连mysql和oracle数据库性能比较
Oct 09 PHP
PHP date函数参数详解
Nov 27 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
php在线代理转向代码
May 05 PHP
php function用法如何递归及return和echo区别
Mar 07 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
php适配器模式简单应用示例
Oct 23 PHP
Thinkphp开发--集成极光推送
Sep 15 #PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 #PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 #PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 #PHP
Laravel框架实现redis集群的方法分析
Sep 14 #PHP
ThinkPHP开发--使用七牛云储存
Sep 14 #PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 #PHP
You might like
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP运行模式的深入理解
2013/06/03 PHP
如何在php中正确的使用json
2013/08/06 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
python实现的文件夹清理程序分享
2014/11/22 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
thinkphp5 路由分发原理
2021/03/18 PHP
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
小学教师自我鉴定范文
2014/03/20 职场文书
日化店促销方案
2014/03/26 职场文书
企业贷款委托书格式
2014/09/12 职场文书
2014院党委领导班子对照检查材料思想汇报
2014/09/24 职场文书
安全生产先进个人总结
2015/02/15 职场文书
公积金具结保证书
2015/05/11 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers