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 pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
php支付宝APP支付功能
Jul 29 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 PHP
PHP抽象类与接口的区别详解
Mar 21 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 PHP
Thinkphp开发--集成极光推送
Sep 15 #PHP
php插件Xajax使用方法详解
Aug 31 #PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 #PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 #PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 #PHP
laravel如何开启跨域功能示例详解
Aug 31 #PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 #PHP
You might like
php+mysql写的简单留言本实例代码
2008/07/25 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
详解Python3中yield生成器的用法
2015/08/20 Python
判断网页编码的方法python版
2016/08/12 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
英国家用电器购物网站:Hughes
2018/02/23 全球购物
2015年教育实习工作总结
2015/04/24 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
导游词之大雁塔景区
2019/09/17 职场文书