Tạo Captcha dựa trên tổng 2 số bằng PHP

20/03/2014

Ngày nay hầu hết mọi website đều ưa thích sử dụng những mẫu captcha đơn giản để dùng cho những trang có độ bảo mật ít hơn, chủ yếu dùng để ngăn chặn những spam từ phía người dùng khi họ submit form. Trước đây mình đã giới thiệu cho các bạn cách làm Tạo captcha xác minh kí tự nhập vào (Number Verification) bằng PHP . Hôm nay mình sẽ chia sẻ cho các bạn một cách tạo captcha đơn giản hơn, người dùng sẽ chỉ phải tính toán tổng của 2 số ngẫu nhiên, và kết quả nhập vào chính xác thì form mới được gửi đi. Để dễ hiểu các bạn có thể xem demo bên dưới.

tao-captcha-dua-tren-tong-2-so-bang-php

Xem Demo | Download

Để tạo chức năng captcha như bên trên, đầu tiên chúng ta sẽ cần lấy 2 số ngẫu nhiên và tổng của 2 số đó như sau :

<?php
$number1 = rand(1,9);
$number2 = rand(1,9);
$sum = $number1 + $number2;
?>
<form>
   ....
</form>

Sau đó chúng ta sẽ chèn giá trị tổng này vào bên trong một thẻ hidden ở trong form, việc làm này là để chúng ta sẽ so sánh giá trị này với giá trị nhập của người dùng.

<form>
   <input type="hidden" name="correctsum" value="<?php echo $sum; ?>"/>
   ...
</form>

Bây giờ chúng ta sẽ hiển thị 2 số ngẫu nhiên ra màn hình để người dùng tính toán và nhập kết quả.

<form>
   ...
   <?php echo $number1.' + '.$number2.' = '; ?>
   <input type="text" name="captcha" />
   ...
</form>

Và cuối cùng là khi người dùng nhập kết quả và nhấn nút “Submit” chúng ta sẽ so sánh xem có trùng khớp hay không để có thể đưa đến những trang mà người dùng muốn.

<?php
$correctsum = $_POST['correctsum'];
$captcha = $_POST['captcha'];
if($correctsum == $captcha){
   // TODO: success
}else{
   // TODO: Captcha Invalid
}
?>

Thế là xong, các bạn thấy ứng dụng này cũng đơn giản phải không? Nếu các bạn có gì thắc mắc thì có thể để lại lời nhắn dưới dạng comment, hoặc download toàn bộ ứng dụng về để nghiên cứu.

Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • Huy

    Mong bạn hướng dẫn áp dụng captcha này cho contact wordpress.

    Cảm ơn!