thinkphp验证码实现。

作为我大天朝的程序员,如果不会点thinkphp框架确实有点说不过去了。不过不会也没关系,很简单的一个php框架。今天为大家介绍的是thinkphp如何实现验证码的功能。

thinkphp自带验证码功能,我们直接调用就行了。发展到现在thinkphp已经有好几个正式版本了,最新的版本是thinkphp5.0。今天我将给大家介绍一下5的版本和3的版本。

thinkphp3的版本:

第一步:在我们相对应的控制器创建一个输出验证码方法

public function verify()
{
    $Verify = new \Think\Controller\Verify();
    $Verify->fontSize = 20; // 字体大小
    $Verify->length = 6; // 多少个字符
    $Verify->useNoise = false; // 是否添加杂点
    $Verify->imageW = 233; // 验证码宽度
    $Verify->imageH = 50; // 验证码高度
    $Verify->entry();
}

第二步:在页面输出我们的验证码

<img src="{:U(‘Admin/verify‘)}" class="verifyCode" name="admin_verify" title="点击刷新验证码">

完成以上的操作即可。接下来,我们开始实现附加功能。

第一个点击验证码实现刷新(其实就是使用一个ajax方法再去重新加载一次图片输出而已):在我们的js中写入如下方法。

var verifyImg = $(".verifyCode");
var verifyPath = verifyImg.attr("src");
verifyImg.click(function () {
if (verifyPath.indexOf("?")>0) {
$(this).attr("src", verifyPath+‘&random=‘+Math.random());
}else{
$(this).attr("src", verifyPath.replace(/\?.*$/,‘ ‘)+‘?‘+Math.random());
}
)}

第二个就是后台验证我们的验证码正确性:先创建一个公共的验证函数(公共的配置函数文件是在common下面,可定义在项目的公共目录也可在模块的功能目录),在再我们接受用户信息提交的地方做验证并将错误信息反馈给用户。

// 公共的验证函数(建议放在项目的公共目录中,便于多个模块调用)// 公共函数在系统中可以直接使用function check_verify($code, $id = ""){
    $verify = new \Think\Verify();
    return $verify->check($code, $id);
}
// 接收页面传入的填写的验证码值
$data[‘admin_verify‘] = I(‘post.admin_verify‘);
if (check_verify($data[‘admin_verify‘])) {
    $this->error("验证码不正确", U("login"), 3);
}

啊手动阀手动阀手动阀

时间: 2024-10-09 13:41:43

thinkphp验证码实现。的相关文章

ThInkPHP验证码不显示,解决方法汇总

出现ThInkPHP验证码不显示的情况 官方提示如下:如果无法显示验证码,请检查:① PHP是否已经安装GD库支持:② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出):(打开验证码文件为乱码,也有可能是BOM编码,可查看下方2寻找解决方法)③ Image类库是否正确导入:④ 如果是中文验证码检查是否有拷贝字体文件到类库所在目录: ⑤URL_MODEL模式,有些服务器不支持REWRITE . 针对上面的情况,一一检查 1.可以用phpinfo 查看GD库是否开启,phpinfo打印出

ThinkPHP验证码类

//ThinkPHP验证码类使用$config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 3, // 验证码位数 'useNoise' => false, // 关闭验证码杂点 ); $Verify = new \Think\Verify($config); $Verify->entry();

ThinkPHP验证码不现实的处理方法

ThinkPHP测试的时候遇到验证码不显示的问题,主要解决思路如下: 1.php.ini是否开启gd库: 2.页面编码是否一致: 3.检查页面头部信息BOM,这是最主要的,把下面代码复制到根目录下,然后访问一下这个文件,然后再刷新验证码页面(清除BOM头),验证码即可出现. if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir)

thinkphp验证码功能

Think\Verify类可以支持验证码的生成和验证功能. 为了显示这个验证码功能,第一要有控制器,再就是有方法,然后是显示的页面. 一.最简单的方式生成验证码 (1)我们还是继续在那个控制器编写方法 这个方法显示这个验证码的页面 public function xianshi() { $this->show(); } public function shengcheng() { //造验证码的对象 $v = new \Think\Verify(); //生成验证码 $v->entry();

Thinkphp 验证码、文件上传

一.验证码 验证码参数 例题:登录时验证下验证码 LoginController.class.php <?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller { public function Login() { if(empty($_POST)) { $this->display(); } else { //判断验证码是否正确 $code = $_POST[

THINKPHP 验证码不显示

最近同事将我之前使用Thinkphp做的一个项目从香港服务器迁移到国内,但却遇到了图片验证码不显示的问题 但我确认了以下可能的问题后还是没有解决 PHP是否已经安装GD库支持: 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出): Image类库是否正确导入: 是否有拷贝字体文件到类库所在目录: PHP.ini配置中的临时目录是否有可写权限 在Thinkphp官方网站上找到解决办法:在调用Think\Verify()之前添加ob_clean();即可 public function v

thinkphp验证码的实现

两种验证码验证实现,一种直接在form表单提交按钮实现验证,一种使用ajax传递参数实现验证: 1.直接在form表单提交按钮实现验证,在控制器VerifyController.class.php中写入如下代码: namespace Home\Controller; use Think\Controller; class VerifyController extends Controller { public function index() { $this->display(); } publ

thinkphp验证码不显示

1.安装php的GD库 yum -y install php-gd 2.在输出图片前header("content-type: image/png"); 写入 header("content-type: image/png"); ob_clean(); 再不行,继续写入 ob_end_clean(); 注意:php.ini 中的  zlib.output_compression = on/off 也会影响验证码的显示

ThinkPHP验证码

模块:Home: 显示:Home /View/Main/prectice  //Home模块->View视图->Main文件夹->prectice <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="htt