ThinkPHP验证码使用简明教程
一、首先需要在控制器中加入验证码方法admin/lib/action/loginaction.class.php
知识点:
1、ob_clean函数用途
2、import方法调用think默认类库
3、image类buildimageverify方法使用
代码如下:
public function verify(){
ob_clean();
//ob_clean函数 清空先前输出
import('org.util.image');
//import调用的是message/thinkphp框架目录下的扩展包extend/library/org/util/中的image.class.php类文件
image::buildimageverify();
//调用buildimageverify方法生成验证码,默认参数为($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyname='verify'),有兴趣的朋友可以研究下image类
}
二、在模板文件中加入验证码模块admin/tpl/login/index.html
知识点:
1、验证码图片调用
2、js相关运行流程了解
3、__public__常量
在密码输入框后加入如下代码:
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="__public__/js/jquery-1.7.2.min.js"></script>
//__public__常量可以在页面加载后,“查看页面源文件”中找到定义的__public__目录,默认为项目根目录message下的public目录,下面会讲解如何自定义__public__系统常量
//jquery文件,只有加载了这个文件才可以调用jquery的方法
<script type="text/javascript" src="__public__/js/login.js"></script>
//这里的具体代码会在下面贴出,其实只是定义了一个change_code函数,也就是更换验证码的异步操作(可以在不刷新页面的情况下更换)
<title>message board background</title>
</head>
<body>
<form action="{:u('admin.php/login/login')}" method="post" name="back_login" >
<h2>简易后台登录系统</h2>
用户名:<input type='username' name='username' id='username' />
<br />
密码:<input type='password' name='password' id='password' />
<br />
验证码:<input type="code" name="code"/>
//这里需要注意将type设置为code,name命名为code
<img src="{:u('admin/login/verify','','')}" id="code"/>
//img标签下的src就是调用login控制器中的veryfy方法
//后面的两个参数留空是必须的,其中第2个没实际意义,主要是为了第3个参数留空,这样设置可以取消伪静态后缀名,否则默认的伪静态后缀名为html,将会导致无法正常加载图片
<a href="javascript:void(change_code(this));">看不清</a>
//这里调用了个
<br />
<input type="submit" value="登录"/>
</form>
</body>
</html>
login.js文件在message/public/目录下
文件内容如下:
verifyurl = 'http://localhost/message/admin.php/login/verify';
//定义验证码路径
function change_code(obj){
$("#code").attr("src",verifyurl+'/'+math.random());
//动态生成验证码方法,有兴趣的朋友可以深入研究下jq方法
return false;
}
另:__public__文件定义在message/admin/conf/config.php
在配置中,加入如下内容,即可改变__public__路径
配置如下:
//常量相关配置
'tmpl_parse_string' => array(
'__public__' => __root__ . '/' . app_name . '/public',
//路径改变为message/admin/public,刷新页面,验证码依然可以刷新,则表明js生效,也可“查看页面源文件”
),
上一篇: php绘图中显示不出图片的原因及解决
下一篇: 香椿忌什么,又有什么功效作用