<?php
switch($_GET['do']){
case 'vc':
$cookieFile = "./test.tmp";
$url = 'http://localhost/test/login.php?do=vcode&?r='.rand();
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_COOKIEJAR, $cookieFile); // 把返回来的cookie信息保存在文件中
curl_exec($ch);
curl_close($ch);
exit;
break;
case 'login':
$pars = http_build_query($_GET);
$cookieFile = "./test.tmp";
$url = 'http://localhost/test/login.php?do=login&'.$pars;
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookieFile); //同时发送Cookie
curl_exec($ch);
curl_close($ch);
//虚拟操作
$url = 'http://localhost/test/login.php?do=dosth';
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookieFile); //同时发送Cookie
curl_exec($ch);
curl_close($ch);
exit;
break;
default :
break;
}
?>
<html>
<form action="">
<input type="hidden" value="login" name="do">
<input type="text" value="test" name="u">
<input type="password" value="testp" name="p">
<input type="text" value="" name="vc">
<input type="submit" value="OK">
<iframe src="http://localhost/test/vmlogin.php?do=vc" ><iframe>
</form>
</html>

登录页面 login.php:

<?php
session_start();
switch($_GET['do']){
case 'vcode':
echo $_SESSION['vc'] = rand(100,999);
exit();
break;
case 'login':
if($_GET['vc'] != $_SESSION['vc'])
die('veryfy code error');
$auth = array('test'=>'testp');
if($auth[$_GET['u']] == $_GET['p']){
$_SESSION['has_login'] = 1;
header("location:http://localhost/test/");
}else{
die('invalid user/pwd');
}
exit();
break;
case 'dosth':
if($_SESSION['has_login'])
exit("do sth");
else
exit("no privilege");
break;
default:
break;
}
?>
<html>
<form action="">
<input type="text" value="" name="u">
<input type="password" value="" name="p">
<input type="text" value="" name="vc">
<input type="hidden" value="login" name="do">
<input type="submit" value="OK">
<iframe src="http://localhost/test/login.php?do=vcode" ><iframe>
</form>
</html>

PHP curl登录 跳过验证码的更多相关文章

  1. requests库使用:通过cookie跳过验证码登录,并用Session跨请求保持cookie

    拿我平时测试的一个系统为例,从UI层面来说必须先登录才可以进行后续操作,但是我在测试接口文档提供的接口时,发现并不需要登录,每个接口只要传参就可以正常返回.原因是我们这边专门弄了一个接口包来统一管理常 ...

  2. 通过cookies跳过验证码登陆页面,直接访问网站的其它URL

    我每次手动访问去NN网的一家酒店,就不需要登陆,一旦我用脚本打开就会让我登陆,而登陆页面又有验证码,不想识别验证码,所以就想:“通过cookies跳过验证码登陆页面,直接访问网站的其它URL”   转 ...

  3. 模拟用户登录,内含验证码验证和request等操作

    模拟用户登录,内含验证码验证和jsp等操作 1.案例需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码. * 如果用户名和密码输入有误,跳转登录页面,提示: ...

  4. SpringBoot 整合 Shiro 密码登录与邮件验证码登录(多 Realm 认证)

    导入依赖(pom.xml)  <!--整合Shiro安全框架--> <dependency> <groupId>org.apache.shiro</group ...

  5. C#-WebForm-Session、Cookie-登录验证(未登录跳至登录界面)、隐藏地址栏传值

    Post 传值(看不见的传值) Get 传值(看得见的传值) Session - 全局变量组 存放位置:服务端 作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量 -- object类 ...

  6. DEDE后台登录和前台验证码不显示的解决方法

    DEDE后台登录和前台验证码不显示的解决方法,网络上现在有好几种方法,某些时候还是有用的.说说自己今天遇到的一个情况,跟其他不一样的原因和解决方法:  方法一 1.用ftp把网站根目录下的DATA文件 ...

  7. 纯JSP实现简单登录跳转

    1.JSP介绍 JSP即Java Server Pages,JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑.网页还能通过tags和script ...

  8. 单点登录CAS使用记(四):为登录页面加上验证码

    CAS默认的登录页面样式如下,只有用户名与密码两项验证项目. 现在需要为首页登录加上验证码功能. 第一步:首页对默认登录页面的样式进行了调整,使其看上去还算美观. 在页面上加上了验证码项目. 第二步: ...

  9. SSM登录跳转到登录页,登录页不能加载js和样式

    SSM登录跳转到登录页,登录页不能加载js和样式选用jsppage添加根路径. <% String rootPath = request.getContextPath(); %> < ...

随机推荐

  1. 第三百三十二节,web爬虫讲解2—Scrapy框架爬虫—Scrapy使用

    第三百三十二节,web爬虫讲解2—Scrapy框架爬虫—Scrapy使用 xpath表达式 //x 表示向下查找n层指定标签,如://div 表示查找所有div标签 /x 表示向下查找一层指定的标签 ...

  2. Lamp后端开发技能表v0.1(转)

    专业技能 Linux 阿里云服务器免费购买 服务器环境搭建 常用命令:慕课网-Linux达人养成计划 编辑器vim:床用命令.模式等等 shell Apache/Nginx 环境配置 一些配置项的参数 ...

  3. Android中的缩略图加载-不浪费一点多余的内存

    1. Why,为什么要加载缩略图? 有的时候不需要展示原图,只需展示图片的缩略图,可以节省内存.比如:网易新闻中的图片浏览,左边展示的小狮子图片就是一个缩略图,点击这个图片,才会展示原图.   2. ...

  4. YII2常用数据库操作

    //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->findAll(&q ...

  5. jquery datepicker只显示年和月

    <html xmlns="http://www.w3.org/1999/xhtml"> <head >     <title></titl ...

  6. HTML5 touche vents drag to move & AF actionsheet by longTap

    $('img').on("touchstart",function(E){ //E.preventDefault();E.stopPropagation(); var el=thi ...

  7. lnmp无法删除.user.ini文件的解决办法

    有一次使用命令lnmp vhost del删除虚拟主机后,需要使用ftp或者rm命令删除网站目录,但是却发现网站目录下有个文件.user.ini文件没有自动删除,出现提示rm: cannot remo ...

  8. UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串

    lienhua342014-10-15 ISO C 定义了 system 函数,用于在程序中执行一个命令字符串.其声明如下, #include <stdlib.h> int system( ...

  9. 详解MathType中如何更改公式颜色

    在MathType数学公式编辑器中可以通过更改公式颜色,起到美化.标注公式的效果.本教程将详解MathType中如何更改公式颜色. 点击菜单栏中的样式->格式->颜色,用户就可以根据自己的 ...

  10. 使用System.Web.Optimization对CSS和JS文件合并压缩

    在ASP.NET MVC 中JS/CSS文件动态合并及压缩通过调用System.Web.Optimization定义的类ScriptBundle及StyleBundle来实现. 大致步骤如下: 1.A ...