ThinkPHP验证码使用简明教程
发布:smiling 来源: PHP粉丝网 添加日期:2020-10-15 14:29:56 浏览: 评论:0
验证码功能主要是为了防止网站登录功能被刷,但是根据现在市面上常见的验证码功能,很容易被绕过,所以如果想让网站足够安全的话,最好再研究深入一些。
一、首先需要在控制器中加入验证码方法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生效,也可“查看页面源文件”
- ),
Tags: ThinkPHP验证码
- 上一篇:ThinkPHP分页类使用详解
- 下一篇:thinkphp验证码显示不出来的解决方法
相关文章
- ·thinkphp验证码显示不出来的解决方法(2020-11-05)
- ·ThinkPHP验证码和分页实例教程(2021-04-08)
- ·完美解决thinkphp验证码出错无法显示的方法(2021-05-03)
- ·ThinkPHP打开验证码页面显示乱码的解决方法(2021-05-04)
- ·thinkPHP中验证码的简单使用方法(2021-07-02)
- ·thinkPHP实现的验证码登录功能示例(2021-08-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)