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 相关文章推荐
基于文本的留言簿
Oct 09 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
php中各种定义变量的方法小结
Oct 18 PHP
PHP实现微信申请退款功能
Oct 01 PHP
关于laravel框架中的常用目录路径函数
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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
将二维数组转为一维数组的2种方法
2014/05/26 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
JS中操作JSON总结
2020/12/06 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
iView框架问题整理小结
2018/10/16 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
keras 多gpu并行运行案例
2020/06/10 Python
python模块内置属性概念及实例
2021/02/18 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
职高毕业生自我鉴定
2013/10/21 职场文书
高中生学习的自我评价
2013/12/14 职场文书
生产部主管岗位职责
2014/01/06 职场文书
婚育证明格式
2015/06/17 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers