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笔记之常用文件操作
Oct 12 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
PHP生成唯一订单号
Jul 05 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 PHP
php简单中奖算法(实例)
Aug 15 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 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中使用Oracle数据库(5)
2006/10/09 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
JavaScript Timer实现代码
2010/02/17 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
九步学会Python装饰器
2015/05/09 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
Linux开机引导的步骤是什么
2014/02/26 面试题
导游个人求职信范文
2014/03/23 职场文书
《海底世界》教学反思
2014/04/16 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
《搭石》教学反思
2016/02/18 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
CSS完成视差滚动效果
2021/04/27 HTML / CSS
Django中的JWT身份验证的实现
2021/05/07 Python