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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
PHP 如何向 MySQL 发送数据
Oct 09 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php中用数组的方法设置cookies
Apr 21 PHP
php中字符串和正则表达式详解
Oct 23 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
PHP 进度条函数的简单实例
Sep 19 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中邮箱地址正则表达式实现与详解
2012/04/24 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
Django中处理出错页面的方法
2015/07/15 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Python队列的定义与使用方法示例
2017/06/24 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python实现三壶谜题的示例详解
2020/11/02 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
思想品德自我评价
2014/02/04 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
副董事长岗位职责
2014/04/02 职场文书
中班上学期个人总结
2015/02/12 职场文书
2015年度党员个人总结
2015/02/14 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
为Centos安装指定版本的Docker
2022/04/01 Servers
排查MySQL生产环境索引没有效果
2022/04/11 MySQL