今天来看一个小插件。

tp框架是怎么实现验证码的。

又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
  7. </head>
  8.  
  9. <body><!--form表单post方式传值-->
  10. <form action="__ACTION__" method="post">
  11. <!--文本框-->
  12. <input type="text" name="yzm" />
  13. <!--验证码图片-->
  14. <img src="__CONTROLLER__/yzm" id="img" />
  15. <div><input type="submit" value="验证" /></div>
  16.  
  17. </form>
  18. </body>
  19. </html>

接下来我们就要去后台写验证码的代码了,是不是很期待?

往哪里提交,就在哪里验证

  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class TestController extends Controller
  5. {
  6. //验证码
  7. public function zhuce()
  8. {
  9. if(empty($_POST))
  10. {
  11. $this->show();
  12. }
  13. else
  14. {
  15. $verify = new \Think\Verify();
  16. var_dump($verify->check($_POST["yzm"])); //check方法里面的第一个参数为用户输入的字符串;第二个参数为$id,标识。
  17. //这个地方可以用var_dump()方法输出一下进行检测验证码是否输入正确
  18. }
  19. }
  20.  
  21. public function yzm()
  22. {
  23. $Verify = new \Think\Verify();
  24. $Verify->fontSize = 20; //字体大小
  25. $Verify->length = 3; //显示字符数
  26. $Verify->fontttf = "5.ttf"; //定义字体
  27. //$Verify->useImgBg = true; //定义背景图
  28. $Verify->useZh = true; //启用中文验证码(必须引入中文字体文件)
  29. $Verify->fontttf = "simhei.ttf"; //显示的中文字体类型
  30. $Verify->entry();
  31. }
  32. }

这里可以用不同的方法,给图片设置不同的样式

现在就可以显示验证码了:

我们再来做一下点击图片切换验证码,只用简单的jquery就可以。

zhuce.html页面的全部代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
  7. </head>
  8.  
  9. <body><!--form表单post方式传值-->
  10. <form action="__ACTION__" method="post">
  11. <!--文本框-->
  12. <input type="text" name="yzm" />
  13. <!--验证码图片-->
  14. <img src="__CONTROLLER__/yzm" id="img" />
  15. <div><input type="submit" value="验证" /></div>
  16.  
  17. </form>
  18. </body>
  19. </html>
  20. <script>
  21. $(document).ready(function(e) {
  22. $("#img").click(function(){
  23. //因为考虑到浏览器的兼容问题,所以在这里造一个随机数,用随机数来实现点击图片切换。
  24. var a = Math.ceil(Math.random()*100);
  25.  
  26. //传一个随机数参数,并无实质作用,只是为了能让浏览器实现点击切换
  27. $(this).attr("src","__CONTROLLER__/yzm/a/"+a+"");
  28. })
  29. });
  30.  
  31. </script>

在这里一定要注意:兼容性问题。如果直接重新定义src的话有的浏览器是不支持的,所以我们要用随机数来实现。

OVER.   不难吧。^_^

tp框架实现验证码的更多相关文章

  1. tp框架为什么验证码加载不出来?----- ob_clean() 可解决

    在用tp做验证码时,代码逻辑都正确,但就是加载不出图片来,如何解决呢?在创建验证码之前加上 ob_clean(); public function haha(){ ob_clean(); $v = n ...

  2. TP框架设置验证码

    thinkphp框架有专门的的验证码生成的模块 public function shengcheng(){ $n = new \Think\Verify(); $n->entry(); } 下面 ...

  3. tp框架之验证码

    控制器 function yzm() { /*$config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 4, // 验证码位数 ' ...

  4. tp框架实现验证码验证

    //实现验证页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  5. 6月19 使用tp框架生成验证码及文件上传

    ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think ...

  6. 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式

    外部文件引入到视图模板的方式       1,将外部文件放在Public文件夹下,用load标签引入       2,在模板出书写引入代码(方法有很多,只有以下方法不容易出问题) <load h ...

  7. PHP--TP框架----生成验证码的方式

    TP框架----生成验证码的方式 xianshi.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  8. tp框架-------验证码

    验证码我们一般很常见,在注册或登录时,都可以用的到,下面我们就来看看它的代码和用法 加验证码是为了防止表单攻击的一种方式,为了我们的程序更加的安全 在tp框架中它自带了一个验证码的类,我们先来看一下 ...

  9. tp框架 验证码的应用注意事项

    1如何点击更换二维码 二维码是img标签的src访问生成二维码的方法.绑定点击事件,ajax的get方式请求生成二维码的函数.在U函数后面加上任意不重复的参数 如  ?rand=’+math.rand ...

随机推荐

  1. 【转】OpenGL多线程创建纹理,附加我的测试结果

    原文地址 http://www.cnblogs.com/mazhenyu/archive/2010/04/29/1724190.html 关于这个问题以前只知道多个线程不能同时使用一个RC,结果为了能 ...

  2. java学习笔记之正则表达式

    一般来说,正则表达式就是以某种方式来描述字符串,因此你可与说:"如果一个字符串符合有这些东西,那么它就是我正在找的东西. 1.要找一个数字,如果它可能有一个负号在最前面(可能没有,没有也是匹 ...

  3. Android 样式 (style) 和主题(theme)

    转载:https://gold.xitu.io/post/58441c48c59e0d0056a30bc2 样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字 ...

  4. 统计单词数(WordCount)

    1.首先新建两个文件夹: 往文件夹添加内容: 2.启动hadoop-查看是否启动成功. 3.先对nameNode进行初始化. 4.查看hadoop下面有哪些文件. 5.在hadoop目录下创建inpu ...

  5. Swift-代理

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #535b60; bac ...

  6. Linux 命令

    Linux 常用命令 su root  切换root用户 touch /etc/www/html/1.txt  创建文件 mkdir /usr/local/apache2   建立文件夹 rm -rf ...

  7. TTTAttributedLabel xib sb lineSpacing not working

    https://github.com/TTTAttributedLabel/TTTAttributedLabel/issues/733 set the same text in storyboard ...

  8. 怎么把本地项目和远程git仓库相连通

    1. 打开在你的项目文件夹,输入下面的命令 git init 输完上面的命令,文件夹中会出现一个.git文件夹,如下图所示,其他的的文件也会出现蓝色小问号的标志 2. 添加所有文件 git add . ...

  9. 学习MySQL之数据类型(四)

    一.   整数类型: 整数类型 占用字节 最小值 最大值 TINYINT 1 有符号 -128 无符号0 有符号127 无符号255 SMALLINT 2 有符号-3 2768 无符号0 有符号3 2 ...

  10. jQuery动画slideUp()不正常位移原因

    用jQuery写一个列表.当点击底部按钮时,列表中序号超过6的项目可以向下拉出或者向上收起. 用slideUp(),遇见一个问题.展开列表项会产生不正常位移,如下图所示.动画结束发生位移. 出现这个问 ...