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实现 使用PHP数组内部指针操作函数
Oct 12 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP 数组基本操作小结(推荐)
Jun 13 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
php 中的closure用法详解
Jun 12 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
php中错误处理操作实例分析
Aug 23 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 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中操作ini配置文件的方法
2013/04/25 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
举例讲解Python装饰器
2020/12/24 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
小学母亲节活动方案
2014/03/14 职场文书
上课说话检讨书
2015/01/27 职场文书
学校捐书活动总结
2015/05/08 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
小学语文教学反思范文
2016/03/03 职场文书
python字符串常规操作大全
2021/05/02 Python
Django中的JWT身份验证的实现
2021/05/07 Python
Python Parser的用法
2021/05/12 Python
redis缓存存储Session原理机制
2021/11/20 Redis
Python实现日志实时监测的示例详解
2022/04/06 Python
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL