四、驗證輸入結果
當使用者輸入了驗證碼之後,我們必須在網頁表單送出的PHP程式中進行驗證,程式的寫法是:
session_start();
$Code = $_REQUEST["Turing"];
if ( !isset( $_SESSION[‘turing_string’] ) ) { $ok = 1 }else if ( strtoupper($_SESSION[‘turing_string’]) == strtoupper($Code))
{ $ok = 1 }
else {
$ok = 0;
echo "<b><font color=red>驗證碼輸入錯誤!請回到上一頁重新輸入!
</font></b><br>";
return 1;
}
如此一來只要使用者輸入錯了驗證碼,就會出現「驗證碼輸入錯誤!」的訊息,然後PHP程式終止,使用者必須回到上一頁重新輸入。要注意的是程式碼裡面的"Turing"是剛才在表單中輸入驗證碼欄位的名稱,請自行修改。
※PS:完整寫法在官方網站及資料夾中的howtoinstall.txt都有介紹。
五、Captcha Genie詳細設定說明
Captcha Genie的官方網站上有詳細的自訂設定選項,這邊介紹一下:
1.選擇樣板檔:一共有13種樣板可以選擇,選擇完後按下〔Load Template〕按鈕。
2.驗證圖片尺寸:可設定驗整圖片的大小,一般來說選擇Variable自動調整大小即可。
3.背景:可選擇圖片背景(有18種)、亂數背景或是固定顏色。
4.驗證碼類型:可選擇Math(數學加減法計算)或是Code(驗證字元),Code的部份預設是用小寫英文字母及數字(去掉數字的1跟英文字母l),最下面還可輸入要出現的驗證碼數字有幾個。
5.驗證碼字型:可使用隨機字型(random),或是指定字型(Fixed font),也可指定字型顏色(Font Color)、尺寸(Font Size)、傾斜角度(Font Rotation)、字距(Padding)。
6.驗證碼干擾:可設定用格線、圓形、三角形、直線或隨機等模式在圖片驗證碼上產生干擾效果,還可指定干擾的顏色。
設定完成後只要按下〔Save and Show〕按鈕就可以看到產生出來的驗證碼圖片了,圖片的難度均可自由調整,相當方便。如果滿意之後,按下「clicking here」就可以下載一個configuration.php,取代captcha資料夾中原本的檔案就可以了。
###
嗯…我有照你上面說的做 但是我驗證碼的圖出不來…
而且單獨開captcha裡的code.php就可以
路徑我也檢查過了沒有問題 程式如下
請輸入驗證碼:
重點是…他裡面給的範本captcha.html 開出來也沒有圖…
瀏覽器不管用ie google也一樣沒有圖 所以應該不是瀏覽器的問題
那真正的問題到底是??
我的也一樣,浪費我一上午時間?
請講清楚一點,拜託了
其实原因是由于code.php中的两个地方的d3应该改为 $d3
請問站長, Captcha Genie 使用起來好像方便但是發現有個重要的問題, Captcha Genie 並不是免費的, 秀出驗證碼的過程很簡單但是要送到後端就出問題了, 不知站長有沒有實際測試過輸出?
我這邊測試的結果是顯示程式碼有錯誤, 不知道是不是故意拿掉;
我把 ; 補上去結果無論是否正確都會通過, 這樣讓人很困擾
最重要的是既然不是免費, 如果站長有辦法改成正確可以送到後端的版本, 我們是不是也不能用在自己的網站?
這東西好像有一些BUG
像是code.php中的變數$d3 忘記加上$ 不出錯才怪阿
還有如果你是到他們官網去自訂並且下載configuration.php
可能會出現圖片時有時無的問題(因為code.php編譯時出錯了)
用原來內建的configuration.php就不會
釣竿給你了,不綁線、掛餌,怪釣竿不好、魚不上鉤
沒這種道理吧
http://captcha.tw/captcha_fun 有另外一種驗證碼服務,PHP 使用範例也有,請參考
阿正老師,我测试成功了,问题在于有个demo version存在。……你是如何把它去掉的啊?
修正的 $d3 還是無法顯示圖片…..
該站目前連不上了,能否提供Captcha Genie主程式?謝謝!
測試成功了。
剛開始圖片也是出不來,發現是php檔路徑問題,要注意source code放在哪裡,以及code.php那支要include的php的路徑。
至於送到後台應如何核對,要看它的文件:howtoinstall.txt
裡面有寫他是用哪個變數接post,要與哪個 session 核對…。這段要修改,似乎有錯,反正改成自己想要的 return 的值就好了。
至於demo version消除的方式…我是偷懶用css把它剪掉…哈
找到了,demo version他是用chr()寫進去的。
可以把
$sr = array()隱藏
滿好用的。謝謝站長推薦。
網站已經失效真是可惜。
請問這程式設定好的驗證碼,手機可以看到嗎?