我試圖在我正在構建的表單中實現一個簡單的驗證碼,但是我遇到了一個我似乎無法自行整理的問題。將用戶輸入的CAPTCHA值與存儲在會話中的期望值進行比較
我使用簡單代碼來生成,像這樣的隨機數....
$randomnr = rand(1000, 9999);
$_SESSION['randomnr2'] = md5($randomnr);
....,然後一些更多的代碼以產生所述隨機數的圖像,並在顯示它頁。我反對它這樣的有效性....
if (strlen($captcha) !== ($_SESSION['randomnr2'])) {
$error['captcha'] = "CAPTCHA error. Please try again";
}
如何去檢查一直輸入驗證碼輸入字段對一個儲存在會話randomnr2
隨機數的價值?
Woo Wooo Wooo!這不是captcha的工作方式。您不檢查長度,而是檢查兩個字符串的實際內容。至於你的第二個問題,沒有一個id =「captch」有一個,最好是他輸入的輸入字段來填充驗證碼。 – Khez 2011-04-13 21:23:48
您正在存儲的會話中存儲的$ randomnr的值...您還應該哈希$ captcha的值並比較兩個哈希值 – 2011-04-13 21:24:43
@Khez - 是的,對不起。這不是我應該檢查的長度 - 這是內容:)謝謝你。從下面的答案我看到,我應該使用'int'來代替。輸入字段同時包含。感謝您的回覆:) – Alan 2011-04-13 21:36:45