laravel框架中验证码的使用
以前都是用的tp框架,觉得tp框架挺好用的,很容易就上手了,也很容易就知道哪个文件是干嘛的,很容易就找到了。用了laravel框架后,经常会一脸懵,特别是看别人的代码更是一脸懵逼,因为根本就不知道那些方法是哪里来的,开始的时候会以为都是大神自己手写的,后来不懂的时候就上网查才知道,那些都是laravel自带的,因为laravel有个强大的功能库:composer。
1、首先找到文件中的composer.json文件,在里面添加代码:
"gregwar/captcha": "^1.1"
如下图所示:
2、添加完成后打开cmd,选择自己项目所在的文件夹,输入下面的代码:
composer update
例如我的项目在D盘:
C:\Users\Administrator>D:
D:\>cd www
D:\WWW>cd huiyin
D:\WWW\huiyin>composer update
3、等待更新完毕,如果出现如下代码,且项目中出现了对应的文件夹,则安装成功,否则失败。
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
You made a reference to a non-existent script @php artisan package:discover
4、在项目中使用验证码:
use Gregwar\Captcha\CaptchaBuilder;
class UserController extends CommonController
{
// 验证码
public function code(){
//生成验证码图片的Builder对象,配置相应属性
$builder = new CaptchaBuilder;
$builder->setIgnoreAllEffects(true);
$builder->setBackgroundColor(255, 255, 255);
//可以设置图片宽高及字体
$builder->build($width = 150, $height = 50, $font = null);
//获取验证码的内容
$phrase = $builder->getPhrase();
//把内容存入session
Session::flash('verifylogin', $phrase);
//生成图片
header("Cache-Control: no-cache, must-revalidate");
header('Content-Type: image/jpeg');
$builder->output();
}
}
5、验证验证码
//验证注册码的正确与否
public function verifyCheck($verify = '')
{
if (empty($verify)) {
return false;
}
if (Session::get('verifylogin') == $verify) {
//用户输入验证码正确
return true;
} else {
//用户输入验证码错误
return false;
}
}
当然,不想使用laravel自带的验证码也可以自己再重新写,用的时候引入文件就可以了。
require_once base_path().'/resources/org/code/Code.class.php'; //文件地址