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 ...
随机推荐
- BZOJ 3931: [CQOI2015]网络吞吐量
3931: [CQOI2015]网络吞吐量 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1555 Solved: 637[Submit][Stat ...
- Zabbix监控redis status
概述 zabbix采用Trapper方式监控redis status 原理 redis-cli info命令得到redis服务器的统计信息,脚本对信息分两部分处理: (1)# Keyspace部分为Z ...
- 矩阵或多维数组两种常用实现方法 - python
在python中,实现多维数组或矩阵,有两种常用方法: 内置列表方法和numpy 科学计算包方法. 下面以创建10*10矩阵或多维数组为例,并初始化为0,程序如下: # Method 1: list ...
- textView的提醒文字
如果我们想提交一些备注信息,会想到用textFiled和textView两种控件去实现 1.提醒文字是textFiled的特有属性,但是textFiled显示文本只有一行,不能实现我们输入较多文字的情 ...
- 连接池的实现 redis例子
# -*- encoding:utf-8 -*- # import pymysql # # conn = pymysql.connect(host="127.0.0.1", por ...
- 第二章 --- 关于Javascript 设计模式 之 策略模式
这一章节里面,我们会主要的针对JavaScript中的策略模式进行理解和学习 一.定义 策略模式: 定义一系列的算法,把他们封装起来,并且是他们可以相互替换. (这样的大的定义纲领,真的不好理解,特别 ...
- 线性插值&双线性插值&三线性插值
http://www.cnblogs.com/yingying0907/archive/2012/11/21/2780092.html 內插是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方 ...
- Eclipse MySQL Hibernate 中文乱码问题
如果是Eclipse的问题,那就对以下各项进行设置,即可排除问题. 设置eclipse相关编码为UTF-8: 修改工作区默认编码,位置:windows--perferences--general--w ...
- easyui的datagrid form(表单)提交到后台转对象的时候中文出现乱码
在web.xml中配置如下代码 <filter> <filter-name>characterEncodingFilter</filter-name> <fi ...
- JavaScript对象详解
JavaScript中的数据类型作为javascript的核心,我们经常要用到,也是最基础的. javascript中有非常复杂的数据类型:包括对象(Object)数据类型,还有五个基本数据类型(N ...