tp框架实现验证码
今天来看一个小插件。
tp框架是怎么实现验证码的。
又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.html
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- <script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
- </head>
- <body><!--form表单post方式传值-->
- <form action="__ACTION__" method="post">
- <!--文本框-->
- <input type="text" name="yzm" />
- <!--验证码图片-->
- <img src="__CONTROLLER__/yzm" id="img" />
- <div><input type="submit" value="验证" /></div>
- </form>
- </body>
- </html>
接下来我们就要去后台写验证码的代码了,是不是很期待?
往哪里提交,就在哪里验证
- <?php
- namespace Home\Controller;
- use Think\Controller;
- class TestController extends Controller
- {
- //验证码
- public function zhuce()
- {
- if(empty($_POST))
- {
- $this->show();
- }
- else
- {
- $verify = new \Think\Verify();
- var_dump($verify->check($_POST["yzm"])); //check方法里面的第一个参数为用户输入的字符串;第二个参数为$id,标识。
- //这个地方可以用var_dump()方法输出一下进行检测验证码是否输入正确
- }
- }
- public function yzm()
- {
- $Verify = new \Think\Verify();
- $Verify->fontSize = 20; //字体大小
- $Verify->length = 3; //显示字符数
- $Verify->fontttf = "5.ttf"; //定义字体
- //$Verify->useImgBg = true; //定义背景图
- $Verify->useZh = true; //启用中文验证码(必须引入中文字体文件)
- $Verify->fontttf = "simhei.ttf"; //显示的中文字体类型
- $Verify->entry();
- }
- }
这里可以用不同的方法,给图片设置不同的样式
现在就可以显示验证码了:
我们再来做一下点击图片切换验证码,只用简单的jquery就可以。
zhuce.html页面的全部代码:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- <script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
- </head>
- <body><!--form表单post方式传值-->
- <form action="__ACTION__" method="post">
- <!--文本框-->
- <input type="text" name="yzm" />
- <!--验证码图片-->
- <img src="__CONTROLLER__/yzm" id="img" />
- <div><input type="submit" value="验证" /></div>
- </form>
- </body>
- </html>
- <script>
- $(document).ready(function(e) {
- $("#img").click(function(){
- //因为考虑到浏览器的兼容问题,所以在这里造一个随机数,用随机数来实现点击图片切换。
- var a = Math.ceil(Math.random()*100);
- //传一个随机数参数,并无实质作用,只是为了能让浏览器实现点击切换
- $(this).attr("src","__CONTROLLER__/yzm/a/"+a+"");
- })
- });
- </script>
在这里一定要注意:兼容性问题。如果直接重新定义src的话有的浏览器是不支持的,所以我们要用随机数来实现。
OVER. 不难吧。^_^
tp框架实现验证码的更多相关文章
- tp框架为什么验证码加载不出来?----- ob_clean() 可解决
在用tp做验证码时,代码逻辑都正确,但就是加载不出图片来,如何解决呢?在创建验证码之前加上 ob_clean(); public function haha(){ ob_clean(); $v = n ...
- TP框架设置验证码
thinkphp框架有专门的的验证码生成的模块 public function shengcheng(){ $n = new \Think\Verify(); $n->entry(); } 下面 ...
- tp框架之验证码
控制器 function yzm() { /*$config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 4, // 验证码位数 ' ...
- tp框架实现验证码验证
//实现验证页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- 6月19 使用tp框架生成验证码及文件上传
ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think ...
- 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式
外部文件引入到视图模板的方式 1,将外部文件放在Public文件夹下,用load标签引入 2,在模板出书写引入代码(方法有很多,只有以下方法不容易出问题) <load h ...
- PHP--TP框架----生成验证码的方式
TP框架----生成验证码的方式 xianshi.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...
- tp框架-------验证码
验证码我们一般很常见,在注册或登录时,都可以用的到,下面我们就来看看它的代码和用法 加验证码是为了防止表单攻击的一种方式,为了我们的程序更加的安全 在tp框架中它自带了一个验证码的类,我们先来看一下 ...
- tp框架 验证码的应用注意事项
1如何点击更换二维码 二维码是img标签的src访问生成二维码的方法.绑定点击事件,ajax的get方式请求生成二维码的函数.在U函数后面加上任意不重复的参数 如 ?rand=’+math.rand ...
随机推荐
- 【转】OpenGL多线程创建纹理,附加我的测试结果
原文地址 http://www.cnblogs.com/mazhenyu/archive/2010/04/29/1724190.html 关于这个问题以前只知道多个线程不能同时使用一个RC,结果为了能 ...
- java学习笔记之正则表达式
一般来说,正则表达式就是以某种方式来描述字符串,因此你可与说:"如果一个字符串符合有这些东西,那么它就是我正在找的东西. 1.要找一个数字,如果它可能有一个负号在最前面(可能没有,没有也是匹 ...
- Android 样式 (style) 和主题(theme)
转载:https://gold.xitu.io/post/58441c48c59e0d0056a30bc2 样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字 ...
- 统计单词数(WordCount)
1.首先新建两个文件夹: 往文件夹添加内容: 2.启动hadoop-查看是否启动成功. 3.先对nameNode进行初始化. 4.查看hadoop下面有哪些文件. 5.在hadoop目录下创建inpu ...
- Swift-代理
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #535b60; bac ...
- Linux 命令
Linux 常用命令 su root 切换root用户 touch /etc/www/html/1.txt 创建文件 mkdir /usr/local/apache2 建立文件夹 rm -rf ...
- TTTAttributedLabel xib sb lineSpacing not working
https://github.com/TTTAttributedLabel/TTTAttributedLabel/issues/733 set the same text in storyboard ...
- 怎么把本地项目和远程git仓库相连通
1. 打开在你的项目文件夹,输入下面的命令 git init 输完上面的命令,文件夹中会出现一个.git文件夹,如下图所示,其他的的文件也会出现蓝色小问号的标志 2. 添加所有文件 git add . ...
- 学习MySQL之数据类型(四)
一. 整数类型: 整数类型 占用字节 最小值 最大值 TINYINT 1 有符号 -128 无符号0 有符号127 无符号255 SMALLINT 2 有符号-3 2768 无符号0 有符号3 2 ...
- jQuery动画slideUp()不正常位移原因
用jQuery写一个列表.当点击底部按钮时,列表中序号超过6的项目可以向下拉出或者向上收起. 用slideUp(),遇见一个问题.展开列表项会产生不正常位移,如下图所示.动画结束发生位移. 出现这个问 ...