工作中後臺開發使用的是 TP5,但是對語法不是很熟悉,總是看著手冊寫代碼。當時做 Java 的時候也是這樣,很多語法需要靠百度。不是不能寫代碼,但是這樣的效率感覺不高,沒有行雲流水的感覺,要是能有聊天時打字的感覺就好多了。不熟悉就得多學習,但是學完經常就忘記了,所以博客就當是記錄了。 TP5的驗證碼 ...
工作中後臺開發使用的是 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