[ PHP ] 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 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.
pic.php
Ứ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 !
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:
numverif.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>
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 !
[ PHP ] Tạo captcha xác minh kí tự nhập vào (Number Verification) bằng PHP
Reviewed by Nguyen Nam Hong
on
7:41 PM
Rating:
