ThinkPHP之验证码的使用
ThinkPHP中已经提供了验证码的生成以及验证的功能。下面介绍如何使用验证码。编程的时候还是采用MVC的方式
View层
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="{$smarty.const.__SELF__}" method="post">
用户名:<input type="text" name="username"/><br/>
密 码:<input type="password" name="password"/><br/>
验证码:<input type="text" name="code"/>
<img src="http://localhost/CloudTemp/index.php/Home/Index/vertifyImg" alt=""/><br/>
<button type="submit">提交</button>
</form>
</body>
</html>
模版引擎采用smarty,__SELF__表示自身的URL,即表单提交给自己
Model层
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/27
* Time: 9:14
*/ namespace Home\Model;
use Think\Model; class ManageModel extends Model{
function checkNamePwd($name, $pwd){
$userpwd = $this->getFieldByUsername($name, 'userpwd');
if($userpwd != null && $userpwd == $pwd)
return true;
else
return false;
}
}
model层对用户提交的用户名和密码进行数据匹配查询,如果一致,则返回true。
Controller层
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Model\ManageModel;
class IndexController extends Controller { public function vertifyImg(){
$config = array(
'fontSize' => 15, // 验证码字体大小
'length' => 4, // 验证码位数
'useNoise' => false, // 开启验证码杂点
'imageH' => 30,
'imageW' => 110,
'fontttf' => '4.ttf'
);
$Verify = new \Think\Verify($config);
$Verify->entry();
} public function login(){
if(empty($_POST))
$this->display();
else{
if($this->checkVerify($_POST['code'])){
$user = new ManageModel('user');
$res = $user->checkNamePwd($_POST['username'], $_POST['password']);
if($res == true){
session('username', $_POST['username']);
session('password', $_POST['password']);
echo 'ok';
}
else
$this->display();
} else
$this->display();
}
}
private function checkVerify($code, $id = ''){
$verify = new \Think\Verify();
return $verify->check($code, $id);
}
}
在controller层生成验证码,用户身份检查。如果用户输入的用户名、密码、验证码正确则将用户名和密码保存到session中,并返回OK,否则返回登录页面。
ThinkPHP之验证码的使用的更多相关文章
- 修改ThinkPHP的验证码类
今天用ThinkPHP重新开发一个系统,用到了ThinkPHP的验证码类,由于我希望验证码别太复杂,希望验证码里边只有数字,却发现该Verify类并未提供设置验证码中使用的字符的配置的方法,于是查看源 ...
- thinkphp 动态验证码
<?php namespace Home\Controller; use Think\Controller; class TestController extends Controller { ...
- 用thinkPHP实现验证码的功能
许多系统的登录都有验证码,而如果使用thinkPHP框架搭建网站的话,验证码的生成和验证就比较容易了 1.生成验证码 thinkPHP有对应生成验证码的方法 要使用验证码,需要导入扩展类库中的ORG. ...
- <转>用thinkPHP实现验证码的功能
许多系统的登录都有验证码,而如果使用thinkPHP框架搭建网站的话,验证码的生成和验证就比较容易了 1.生成验证码 thinkPHP有对应生成验证码的方法 要使用验证码,需要导入扩展类库中的ORG. ...
- thinkphp框架验证码验证一次
做异步验证验证码,只要验证一次结果正确,拿相同的值再次来对比,返回结果就不正确.我看到论坛中有人说,tp框架只要验证过一次正确后验证码就销毁了.确实是这个效果,但具体的还没深入了解
- Thinkphp中验证码的使用以及验证的实现
<input class="TxtValidateCodeCssClass" id="captcha" name="captcha" ...
- thinkphp中文验证码不能显示的问题
使用tp框架里的验证码,数字验证码能很好的显示出来,下面是实现的函数 function verify(){ import("ORG.Util.Image"); return Ima ...
- ThinkPHP的验证码刷新显示和验证码显示不出来的原因
1.应当这样<imp src='验证码路径' onclick="this.src='验证码路径?'+Math.random()">;如果后面不加Math.random( ...
- ThinkPHP 实现验证码渲染、校验、点击刷新
一.在控制器中写方法,生成验证码,代码如下: /** * 验证码生成 * expire 验证码的有效期(秒) * useImgBg 是否使用背景图片 默认为false * fontSize 验证码字体 ...
随机推荐
- 百度地图简单使用——添加折线,圆形等(html,js)
地图覆盖物概述 所有叠加或覆盖到地图的内容,我们统称为地图覆盖物.如标注.矢量图形元素(包括:折线和多边形和圆).信息窗口等.覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动. 地图A ...
- html3秒跳转
<script> setTimeout( 'window.location= "home.jsp " ',3000) ;//注意,此处“;”可加可不加</ ...
- GPS 坐标距离计算
CREATE FUNCTION [dbo].[Rad]( @d float ) RETURNS float BEGIN return @d * PI()/ 180.00; End CREATE FUN ...
- sigemptyset,sigfillset,sigaddset,sigdelset,sigismember,sigprocmask,sigpendmask作用
SYNOPSIS #include <signal.h> int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); in ...
- [麦先生]Laravel SQL语句记录方式
打印sql语句,直接在你执行SQL语句后输出 方法一: $queries = DB::getQueryLog(); $a = end($queries); $tmp = str_replace('?' ...
- 作为一个测试leader平时应该注意哪些方面
平时对管理方面很少有总结,总觉得管理是一门艺术,一门需要意会的艺术,虽然目前在做测试leader,平时也看些管理方面的书,但实际中总感觉理解的不够透彻,在工作上实施的话会有各种各样的情况,想要做好管理 ...
- MySql目录没有data文件夹怎么办
下载的是mysql的压缩包,解压后,更改my.ini文件,里面有个指向data文件夹的路径,但是mysql安装目录没有data文件夹,需要执行 mysqld --initialize --user=m ...
- UVALive 5962 Strongly Connected Chemicals --最大独立集
题意:给n个阳离子和m个阴离子,并给出相互的吸引关系,求一个最大的点集,使其中的每个阴阳离子相互吸引. 解法:枚举每条边,使该条边存在,然后建立反图,求一个最大匹配,此时的点数减去最大匹配与ans求一 ...
- ArcGIS实现在线与线交叉处打断线(批量)
from:http://he1989.blog.163.com/blog/static/2052041092012631112459704/ 打开ArcgisDesktop中的ArcToolBox 找 ...
- JQuery[一] 中如何选中$(this)下面的子元素
<ul> li><span></span></li> li><span></span></li> < ...