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>