ThinkPHP验证码

Posted on Posted in thinkphp
Tips: 本文创建于2014年5月16日,已超过 2 年,内容或图片可能已经失效!

验证码

可以生成验证码及验证码的校验
相关文件
ThinkPHP/Library/Think/Verify.class.php

[code lang="php"]
//前面要加载命名空间,添加下一行代码
use Think\Verify;
/**
* 验证码
* @param config 配置文件
*/
public function verifyImg(){
//实例化Verify.class.php对象,通过对象调用方法即可
$config = array(
'length' => 4,
'imageH' => 30,
'imageW' => 85,
'fontSize' => 13,
'fontttf' => '4.ttf'
//1.ttf 2.ttf 3.ttf 4.ttf 5.ttf 6.ttf
);
$verify = new Verify($config);
echo $verify->entry();
}
[/code]

项目实践

V模块

[code lang="php"]
//验证码链接
//保存跳转时,跳转到本身页面
<img src="{$smarty.const.__MODULE__}/Manager/verifyImg" alt="验证码" />
[/code]

M模块

[code lang="php"]
<?php

namespace Model;
use Think\Model;

class ManagerModel extends Model{
function checkNamePwd($name,$pwd){
//① 首先判断数据表中是否存在name=$name的信息
//否则返回null
$info = $this -> getByMg_name($name);

//② 如果存在,则把该条记录的密码信息与 $pwd做比较
if($info !== NULL){
//密码判断,让$info的密码与$pwd进行判断
if($info['mg_pwd'] == $pwd){
return $info;
}
}
return false;
}
}
[/code]

C模块
登录验证

[code lang="php"]
public function login(){
//两个逻辑:① 展示表单,②收集表单信息处理
if(!empty($_POST)){
$verify = new Verify();
//对验证码进行校验
if($verify->check($_POST['captcha'])){
//用户名和密码校验(在model模型里边自定义方法校验用户名和密码)
$manager = new \Model\ManagerModel();
$info = $manager -> checkNamePwd($_POST['admin_user'],$_POST['admin_psd']);
//如果用户名和密码没有问题,则把该管理员的信息返回,否则返回false信息
if($info){
//对登录信息进行持久化操作(name,id)
session('mgname',$info['mg_name']);
session('mgid',$info['mg_id']);
$this -> redirect("Index/index");
} else {
echo "用户名或密码错误";
}
} else {
echo "验证码错误";
}
} else {
$this -> display();
}
}
[/code]

» 转载请注明来源:若我若鱼 » ThinkPHP验证码

Leave a Reply

Your email address will not be published. Required fields are marked *

twelve − four =