1、使用composer安装验证码
首先要安装composer,大部分“composer require topthink/think-captcha
”命令无法运行或者提示不是内部文件或可执行命令,都是因为没有安装composer,或安装不成功。直接百度搜composer即可,有链接,百度经验里也有教程,不在这里详细介绍了。
composer安装成功后,在你的项目主目录地址栏里输入cmd,然后输入composer require topthink/think-captcha
来下载安装captcha,当然此时有很大概率会报错,来说一下我遇到的两个问题吧:
第一:网络问题,输入“composer require topthink/think-captcha
”窗口一直无响应,此时需要使用以下命令修改composer配置文件,使用国内镜像。原因你懂的。
composer config -g repo.packagist composer https://packagist.phpcomposer.com
第二:版本问题:此时有大概率会引版本不符而报错,错误提示代码如下:
因为官方的5.0
版本的扩展库版本号都是1.*
,2.0
版本均为ThinkPHP5.1
版本专用,我们只需要更换版本就可以:
composer require topthink/think-captcha 1.*
注:安装验证码要在项目的根目录安装
2、使用
<?php
namespace app\index\controller;
class Captcha extends \think\Controller
{ // 验证码表单
public function index()
{
return $this->fetch();
} // 验证码检测
public function check($code='')
{
//方法一
$captcha = new \think\captcha\Captcha();
if (!$captcha->check($code)) {
$this->error('验证码错误');
} else {
$this->success('验证码正确');
} // 方法二:函数助手
if (!captcha_check($code)) {
$this->error('验证码错误');
} else {
$this->success('验证码正确');
}
}
}
注:验证码检测是指验证码提交是对它进行验证,不提交这个check()不会调用
<body>
<h2>验证码示例</h2>
<FORM method="post" class="form" action="{:url('check')}">
输入验证码:<INPUT type="text" class="text" name="code"><br/>
<div id="captcha_image">{:captcha_img()}</div><!--模版内验证码的显示-->
<INPUT type="submit" class="btn" value=" 提交 ">
</FORM>
<div class="copyright">
<a title="官方网站" href="http://www.thinkphp.cn">ThinkPHP</a>
<span>V5</span>
<span>{ 十年磨一剑-为API开发设计的高性能框架 }</span>
</div>
</body>
<script>
//点击图片切换验证码
$('#captcha_image').click(function(){
$(this).find('img').attr('src','/captcha.html?r='+Math.random());
});
</script>