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 相关文章推荐
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
php基本函数汇总
Jul 09 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
三种php连接access数据库方法
2013/11/11 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
介绍一下linux的文件权限
2012/02/15 面试题
十岁生日家长答谢词
2014/01/17 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
岗位职责范本大全
2015/02/26 职场文书
护士自我推荐信范文
2015/03/24 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
MySQL创建管理LIST分区
2022/04/13 MySQL