tinkphp登录验证码的使用
登录和验证(控制器)
<?php
namespace Come\Controller;
use Think\Controller;
class RenController extends Controller
{
public function denglu()
{
//var_dump(get_defined_constants(true));
// 判断提交方式
if (IS_POST) {
// 实例化users对象
$users = D('users');
// 自动验证 创建数据集
if (!$data = $users->create()) {
// 防止输出中文乱码
header("Content-type: text/html; charset=utf-8");
exit($users->getError());
}
// 组合查询条件
$where = array();
$where['uid'] = $data['uid'];//取输入的用户名
$result = $users->where($where)->field('uid,pwd')->find();
// 验证用户名 密码
if ($data['uid'] == $result['uid']) //判断用户名是否正确
{ if ($data['pwd'] == $result['pwd']) //判断密码是否正确
{
$verify = new \Think\Verify();//取显示中的验证码
if ($verify->check(I('post.verify'))) //判断输入的验证码和显示的验证码是否一致
{
// 存储session
session('uid', $result['uid']); // 当前用户名
$this->success('登录成功,正跳转至首页...',U('Index/index'),3);
}
else
{
$this->error('登录失败,验证码不正确!');
}
}
else
{
$this->error('登录失败,密码不正确!');
}
}
else
{
$this->error('登录失败,用户名不正确!');
}
}
else
{
$this->display();
}
}
* 验证码
*/
public function verify()
{
// 实例化Verify对象
$verify = new \Think\Verify(); // 配置验证码参数
$verify->fontSize = 14; // 验证码字体大小
$verify->length = 4; // 验证码位数
$verify->imageH = 34; // 验证码高度
$verify->useImgBg = false; // 开启验证码背景
$verify->useNoise = false; // 关闭验证码干扰杂点
$verify->entry(); }
登录页面:
<body style=" background-color:#099">
<div class="container">
<!--登录-->
<div class="row">
<div class="col-xs-12 deng">
<div class="panel panel-warning p1">
<div class="panel-heading">
<h3 class="panel-title">留言板</h3>
</div>
<div class=" panel-body p2">
<div class="input-group" style="margin-top:10px;color:#5f5f5f">
<h4>请使用账号和密码登录</h4>
</div>
<form action="__ACTION__" method="post">
<div class="input-group" style="margin-top:20px">
<span class="input-group-addon">用户名</span>
<input id="uid" type="text" class="form-control" name="uid" placeholder="username" >
</div>
<div class="input-group" style="margin-top:20px">
<span class="input-group-addon">密码 </span>
<input id="pwd" type="password" class="form-control" name="pwd" placeholder="password"/>
</div>
<div class="input-group has-feedback ">
<input type="text" name="verify" class="form-control" placeholder="验证码" style="width:100px;" />
<!--<span class="glyphicon glyphicon-qrcode form-control-feedback" style="right:120px;"></span>-->
<span><img class="verify" src="{:U(verify)}" alt="验证码" onClick="this.src=this.src+'?'+Math.random()" /></span>
</div>
<div class="input-group" style="margin-top:20px">
<button id="login" type="submit" class="btn btn-danger"
>登 录</button>
</div>
</form>
</div>
</div>
</div>
</div>
</body>
//判断用户名是否正确
tinkphp登录验证码的使用的更多相关文章
- Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题
日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...
- Java实现登录验证码
登录验证码 Servlet /* 从请求中获取数据,获取验证码的session的值转为String类型, 销毁,防止返回后验证码不刷新,重新验证成功 判断验证码是否相同(忽略大 ...
- selemiun 自动化测试登录验证码处理
selemiun 自动化测试登录验证码处理 一.软件及插件的安装 1.火狐浏览器版本(55.0(x64 zh-CN):https://www.cnblogs.com/sandysun/p/783811 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十七):登录验证码实现(Captcha)
登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验 ...
- 通过Cookie跳过登录验证码【限cookie不失效有用】
验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢? 方法还是有的,先说今天这种方式,通过cookie绕过登录验证码 思路: 需要你通过抓包工具抓到你登录的cookie 接下来开始 ...
- 登录验证码实现(Captcha)
登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验 ...
- Python - WebDriver 识别登录验证码
Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...
- 基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示
headers: {"X-CSRFToken": $("[name='csrfmiddlewaretoken']").val()},data:$(". ...
- 15.Python实现识别登录验证码(入门)
1.若想识别登录验证码,需要安装:Tesseract-OCR,其下载地址为:http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tess ...
随机推荐
- zookeeper+jstorm的集群搭建
zookeeper的配置: zookeeper有三种配置方式:单机式/伪分布式/集群式 其中伪分布式是在一台电脑上通过不同的端口来模拟分布式情形,需要N份配置文件和启动程序,而集群式是多个zookee ...
- SD卡读写一些函数
/SPI2 读写一个字节 //TxData:要写入的字节 //返回值:读取到的字节 u8 SPI2_ReadWriteByte(u8 TxData) { u16 retry=0; while((S ...
- linux启动时文件系统错误问题
linux开机启动时,文件系统错误(磁盘有坏轨或文件系统出现错误) 原因: 1.系统运行时,突然断电或不正常关机,导致文件系统错误(文件系统错误并不是硬件错误,而是软件数据的问题) ...
- cache与MMU与总线仲裁
为了以合理的价格,设计容量和速度满足计算机系统的需求,计算机体系结构设计者设计出了存储器的层次结构. "Cache-主存"和"主存-辅存"是最常见的两种层次结构 ...
- Oracle基本sql操作
1.查询用户下的所有表 查询用户下的所有表 select distinct table_name from user_tab_columns; 2.搜索出前N条记录 Select a.*,rownum ...
- Install Jenkins Slave as Windows Service
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service SC 直接创建windows s ...
- Recover lost Confluence password
confluence重置admin密码 复方法: 1. 运行此sql 找到你的管理员帐户: select u.id, u.user_name, u.active from cwd_user u joi ...
- windows编程环境
自行下载VS2010官方原版并破解你也可以从微软官方直接下载VS2010 正式版,然后自行破解.Microsoft Visual Studio 2010官方下载地址如下:页面:http://www.m ...
- webpack模块依赖管理介绍
http://webpack.github.io/docs/ webpack is a module bundler. 是一个模块管理器 webpack可以管理模块的依赖关系,并产生可以替代这些模块的 ...
- C语言 02 include
stdio.h h表示header file include"text.txt" 自己写的文件用双引号,系统自带文件用<>. 绝对路径用 / ,相对路径不带/