From 4710c68c6f66b0b376531f69b5dab13f03853d40 Mon Sep 17 00:00:00 2001 From: yunwuxin <448901948@qq.com> Date: Wed, 11 May 2016 14:59:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + README.md | 31 ++++++++++++++++++++++++ src/CaptchaController.php | 4 +--- src/helper.php | 50 ++++++++++++++++++++++++++++++++++++--- 4 files changed, 80 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index ccef056..85d49cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /vendor/ +/composer.lock .idea \ No newline at end of file diff --git a/README.md b/README.md index ec9e276..786ff69 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,33 @@ # think-captcha thinkphp5 验证码类库 + +## 安装 +> composer install topthink/think-captcha + + +##使用 + +###模板里输出验证码 + +~~~ +
{:captcha_img()}
+~~~ +或者 +~~~ +
captcha
+~~~ +> 上面两种的最终效果是一样的 + +### 控制器里验证 +使用TP5的内置验证功能即可 +~~~ +$this->validate($data,[ + 'captcha|验证码'=>'required|captcha' +]); +~~~ +或者手动验证 +~~~ +if(!captcha_check($captcha)){ + //验证失败 +}; +~~~ \ No newline at end of file diff --git a/src/CaptchaController.php b/src/CaptchaController.php index 94df81e..37fa592 100644 --- a/src/CaptchaController.php +++ b/src/CaptchaController.php @@ -18,8 +18,6 @@ class CaptchaController extends Controller { public function index($id = "") { - $captcha = new Captcha((array)Config::get('captcha')); - $captcha->entry($id); - exit; + captcha($id, (array)Config::get('captcha')); } } \ No newline at end of file diff --git a/src/helper.php b/src/helper.php index 3b036c2..a142ae3 100644 --- a/src/helper.php +++ b/src/helper.php @@ -12,8 +12,52 @@ \think\Route::get('captcha/[:id]', ["\\think\\captcha\\CaptchaController", 'index']); \think\Validate::extend('captcha', function ($value, $id = "") { - $captcha = new \think\captcha\Captcha((array)\think\Config::get('captcha')); - return $captcha->check($value, $id); + return captcha_check($value, $id, (array)\think\Config::get('captcha')); }); -\think\Validate::setTypeMsg('captcha', '验证码错误!'); \ No newline at end of file +\think\Validate::setTypeMsg('captcha', '验证码错误!'); + + +/** + * @param string $id + * @param array $config + */ +function captcha($id = "", $config = []) +{ + $captcha = new \think\Captcha($config); + $captcha->entry($id); +} + + +/** + * @param $id + * @return string + */ +function captcha_src($id = "") +{ + return \think\Url::build('/captcha' . $id ? "/{$id}" : ''); +} + + +/** + * @param $id + * @return mixed + */ +function captcha_img($id = "") +{ + return 'captcha'; +} + + +/** + * @param $value + * @param string $id + * @param array $config + * @return bool + */ +function captcha_check($value, $id = "", $config = []) +{ + $captcha = new \think\captcha\Captcha($config); + return $captcha->check($value, $id); +} +