<?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. SpringMVC系列(十三)异常处理

    一.简介 • Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler 映射.数据绑定以及目标方法执行时发生的异常.• SpringMVC 提 ...

  2. Java如何滚动几个小时和几个月?

    在Java中,如何滚动几个小时和几个月? 本示例展示了如何使用calender类的roll()方法滚动月(不改变年)或小时(不更改月或年). package com.yiibai; import ja ...

  3. Maven项目对象模型(POM)

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven 的缺省构建 ...

  4. C# 判断一个字符串是否为url

    /// <summary> /// 判断一个字符串是否为url /// </summary> /// <param name="str">< ...

  5. TensorFlow:tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)

    转载:https://www.cnblogs.com/yuzhuwei/p/6986171.html 1.概述 在深度学习里研究的物体的关系,都是比较复杂的.比如一个图片32X32大小的,它的像素信息 ...

  6. [转]Linux内核源码详解--iostat

    Linux内核源码详解——命令篇之iostat 转自:http://www.cnblogs.com/york-hust/p/4846497.html 本文主要分析了Linux的iostat命令的源码, ...

  7. Vue slot简单理解

    情形一: 子组件定义了具名的slot,父组件使用具名的slot,slot显示顺序为子组件定义slot的顺序 子组件: Vue.component('child',{ template:`<div ...

  8. 禁止选中文本JS

    if (typeof(element.onselectstart) != "undefined") { // IE下禁止元素被选取 element.onselectstart = ...

  9. level 1 -- unit 4 -- where 引导的疑问句

    where be sb/sth 询问地点,用where where is the restaurant? where are my socks ? where was tome just now? w ...

  10. JSON未定义

    用ajax实现了一个功能,在IE8和IE9中都能正常运行(大概是IE8和IE9都提供了原生的JSON解析和序列化),但是一旦切换到兼容模式就报JSON未定义的错误,解决方法是:判断当前浏览器是否支持J ...