Tạo captcha xác minh kí tự nhập vào (Number Verification) bằng PHP
Ở bài trước mình đã giới thiệu tới các bạn bài viết Thủ thuật PHP : Ứng dụng free php captcha , hôm nay mình sẽ chia sẻ cho các bạn thêm 1 thủ thuật tạo ứng dụng captcha cho trang web của bạn nữa, ứng dụng này có chức năng tạo ra 1 loạt kí tự ngẫu nhiên và tạo ra 1 file hình ảnh cho các kí tự ...
Ở bài trước mình đã giới thiệu tới các bạn bài viết Thủ thuật PHP : Ứng dụng free php captcha , hôm nay mình sẽ chia sẻ cho các bạn thêm 1 thủ thuật tạo ứng dụng captcha cho trang web của bạn nữa, ứng dụng này có chức năng tạo ra 1 loạt kí tự ngẫu nhiên và tạo ra 1 file hình ảnh cho các kí tự đó. Ứng dụng này rất thích hợp để chặn các spam.
Các bạn lần lượt tạo ra 2 file sau : pic.php và numverif.php, sau đó chèn các đoạn code sau vào lần lượt file như sau:
numverify.php
<html> <body> <? define ('CHAR_COUNT', 8); $num_ent=isset($_REQUEST['num_ent']) ? $_REQUEST['num_ent'] : 'none'; if ($num_ent=='none') { $nums = array("5","6","7","8","d","e","1","2","3","4","f","g","h","j","k","9","a","b","c","m","n","p","q", "x","y","z","A","B","C","D","r","s","t","u","v","w","E","F","G","N","P","Q","R","S","H","J","K","L","M", "T","W","X","Y","Z","U","V"); // tạo mảng các kí tự ngẫu nhiên từ mảng $nums $random_key = array_rand($nums, CHAR_COUNT); $random = ""; for ($i=0;$i<CHAR_COUNT;$i++) { // tiếp tục lấy ra các giá trị ngẫu nhiên $random = $random . $nums[$random_key[$i]]; } echo "<img src=pic.php?random=$random>"; echo "<form action=" . $_SERVER['PHP_SELF'] . " method=post> Vui lòng nhập các kí tự sau . (Có phân biệt chữ hoa và thường) <input type="text" name="num_ent"><br> <input type="hidden" name="random" value="$random"> <p> </p><input type="submit" value="Submit">"; } else { if ($num_ent == $_REQUEST['random']) { // Nếu so sánh trùng khớp thì echo "Bạn đã nhập đúng !"; } else { // Nếu không trùng khớp. echo " Không trùng khớp. Vui lòng nhấn F5 để nhận code mới và nhập lại "; } } ?> </body></html>
và sau đây là pic.php
<? $random=isset($_REQUEST['random']) ? $_REQUEST['random'] : 'ERROR'; header("Content-type: image/png"); $im = @imagecreate(100, 40) or die("Cannot Initialize new GD image stream"); // 100,40 là kích thước mặc định của file hình được tạo ra $background_color = imagecolorallocate($im, 225, 225, 225); // màu nền $text_color = imagecolorallocate($im, 0, 0, 0); // màu chữ imagestring($im, 5, 10, 10, $random, $text_color); // "5" là kích thước font chữ // "10,10" là vị trí của các kí tự trong hình imagepng($im); imagedestroy($im); ?>
Ứng dụng đơn giản này rất phù hợp cho những ai mới bước vào lập trình, và là nguồn tham khảo hữu ích, Chúc các bạn thành công !
Chuyên Mục: PHP
Bài viết được đăng bởi webmaster