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 相关文章推荐
Win9x/ME下Apache+PHP安装配置
Oct 09 PHP
php防盗链的常用方法小结
Jul 02 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 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 date函数参数详解
2006/11/27 PHP
php 动态多文件上传
2009/01/18 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
为数据添加append,remove功能
2006/10/03 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
浅谈js闭包理解
2019/03/28 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
python使用urllib2提交http post请求的方法
2015/05/26 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
python 求定积分和不定积分示例
2019/11/20 Python
pandas分批读取大数据集教程
2020/06/06 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
英国现代绅士品牌:Hackett
2017/12/17 全球购物
GWebs公司笔试题
2012/05/04 面试题
2014村务公开实施方案
2014/02/25 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
红色经典观后感
2015/06/18 职场文书
公司费用报销管理制度
2015/08/04 职场文书
团干部培训班心得体会
2016/01/06 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL