700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 图形验证码功能php 图形验证码的实现

图形验证码功能php 图形验证码的实现

时间:2018-07-09 16:10:08

相关推荐

图形验证码功能php 图形验证码的实现

登录时,没有图形验证码的话,很容被机器人进行模拟登录,对网站安全有很大的威胁。因此,验证码是登录功能所必须的。下面,我们就给我们的登录功能,加上验证码。

## 下面功能相关的目录

![](/aa86edfbe29d51f1f6e4ce4411e998ac_301x746.jpg)

首先使用Composer安装think-captcha扩展包,通过命令行,进入 D:\www\phper。(您根据实际情况处理)

~~~

composer require topthink/think-captcha

~~~

完整安装之后,我们在 application 下的 config.php 中添加如下配置:

~~~

//配置文件

return [

'captcha' => [

// 验证码字符集合

'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',

// 验证码字体大小(px)

'fontSize' => 25,

// 是否画混淆曲线

'useCurve' => true,

// 验证码图片高度

'imageH' => 30,

// 验证码图片宽度

'imageW' => 100,

// 验证码位数

'length' => 5,

// 验证成功后是否重置

'reset' => true

]

];

~~~

>[danger] 验证码的配置必须加到 applocation 下面的config 中才可以准确的控制。

在登录页面中,index\view\login\index.html 中,密码下面,加入如下的代码:

~~~

验证码

~~~

>[info] 注意此处的代码: οnclick="javascript:this.src='{:captcha_src()}?tm='+Math.random();" 段代码是用来完成,点击验证码图案,换一个验证码的功能。

然后修改 doLogin 方法,添加验证码验证的处理。首先我们要在 Login.php 的开的头加入:

~~~

use think\captcha;

~~~

后面的 captcha_check 验证码检测,才能正确的使用。

~~~

// 处理登录逻辑

public function doLogin()

{

$param = input('post.');

if(empty($param['user_name'])){

$this->error('用户名不能为空');

}

if(empty($param['user_pwd'])){

$this->error('密码不能为空');

}

if(empty($param['captcha'])){

$this->error('验证码不能为空');

}

// 处理验证码

if(!captcha_check($param['captcha'])){

$this->error('验证码错误');

};

// 验证用户名

$has = db('users')->where('user_name', $param['user_name'])->find();

if(empty($has)){

$this->error('用户名密码错误');

}

// 验证密码

if($has['user_pwd'] != md5($param['user_pwd'])){

$this->error('用户名密码错误');

}

// 记录用户登录信息

cookie('user_id', $has['id'], 3600); // 一个小时有效期

cookie('user_name', $has['user_name'], 3600);

$this->redirect(url('index/index'));

}

~~~

至此,验证码添加完成。

![](/4b6351059e22d80c8d03cf28f2a02f8c_402x423.jpg)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。