TP5 使用驗證碼功能
阿新 • • 發佈:2018-11-03
工作中後臺開發使用的是 TP5,但是對語法不是很熟悉,總是看著手冊寫程式碼。當時做 Java 的時候也是這樣,很多語法需要靠百度。不是不能寫程式碼,但是這樣的效率感覺不高,沒有行雲流水的感覺,要是能有聊天時打字的感覺就好多了。不熟悉就得多學習,但是學完經常就忘記了,所以部落格就當是記錄了。
TP5的驗證碼在 /vendor/topthink/think-captcha 目錄下,檔案分別是 Captcha.php 、CaptchaController.php 和 helper.php 三個檔案。可以直接通過 http://localhost/專案名稱/public/index.php/captcha 來進行訪問。
1、在頁面上顯示驗證碼
插入一個 img 的 html 標籤:
1 <img src="/public/index.php/captcha" alt="點選更新驗證碼" onclick="reloadcode(this);"/>
2、點選驗證碼圖片時更新驗證碼
插入一段 js 程式碼:
1 // 重新整理驗證碼 2 function reloadcode(obj) { 3 obj.src = '/public/index.php/captcha?id=' + Math.random(); 4 }
3、驗證碼顯示大小的設定
在 /application/config.php 檔案的末尾增加配置如下:
1 'captcha' => [ 2 'imageH' => 50, 3 'imageW' => 200, 4 ],
4、判斷驗證碼
登入時將資料提交的地址,程式碼如下:
1 <form class="form form-horizontal" action="{:url('login/check')}" method="post">
5、判斷驗證碼
判斷驗證碼是否正確,在提交的 Controller 中增加對應的判斷程式碼:
1 public function check() 2 { 3 $data = input('post.'); 4 if (!captcha_check($data['code'])) { 5 $this->error('驗證碼不正確'); 6 } else { 7 $this->success('OK'); 8 } 9 }
TP5 驗證碼的詳細說明地址:https://www.kancloud.cn/manual/thinkphp5/154295