loading...

Hướng dẫn viết ứng dụng tạo mã captcha trong PHP

09:16:06 - 04/11/2016 - admin

Các bạn đã được tìm hiểu về kiến thức lap trinh php kết hợp với MySQL đặc biệt là phần thêm, sửa, xóa, user ở bài tới đây chúng ta cùng tìm hiểu về phương pháp mới trong bài này với việc tạo ra các dãy số capcha ngẫu nhiên để giúp web site của bạn trống được các phần mềm tấn công vào giữ liệu hoặc người nào cố tình spam đăng kí,… vào web bạn.

Đầu tiên các bạn nên tạo ra 1 form mã HTML để có thể thực thi tạo ra thao tác nhập liệu sau.

 

 

Chúng ta tạo một hàm md5 để mã hóa các ký tự gồm số, chữa cái khi sử dụng hàm md5 với ký tự phát sinh sẽ lên tới 32 ký tự và chúng ta chỉ cần lấy 5 ký tự chuỗi mã hóa bằng việc sử dụng hàm substr.Tiếp đến ta lưu các đoạn mã hóa này trong session.Để tải lại form ta so sanh với dãy số người dùng nhập liệu.

captcha

Xem thêm: Địa chỉ dạy học lâp trình android ở đâu là tốt nhất

Đoạn code của phần đó như sau:

Tiếp theo đổ background vào tầm hình màu đen thì chữ sẽ xuất hiện trên tấm hình đó là màu trắng với việc sử dụng hàm ImageFill() và hàm ImageString().

+ $image là hình mà chúng ta khởi tạo.

+ 5: là font-size mà chúng ta quy ước cho ký tự xuất hiện trên hình.

+ 30: là khoảng cách bên trái của tấm hình.

+ 6 : là khoảng cách từ trên của tấm hình.

+ $security_code: là đoạn code sau khi chúng ta cắt ra ở trên.

+ $white: là màu sắc mà chúng ta đã sử dụng hàm ImageColorAllocate() ở trên để khởi tạo ra màu trắng.

<?php
header(“Content-Type: image/jpeg”);
ImageJpeg($image);
ImageDestroy($image);
?>
Để quản lý dễ dàng hơn bạn có thể để đoạn code sau vào hàm cho dễ dàng trong việc sử dụng và quản lý.Toàn bộ đoạn code trong trang random_image.php sẽ là như sau
<?php
session_start();
function create_image()
{
$md5_hash = md5(rand(0,999));
$security_code = substr($md5_hash, 15, 5);
$_SESSION[“security_code”] = $security_code;
$width = 100;
$height = 30;
$image = ImageCreate($width, $height);
$white = ImageColorAllocate($image, 255, 255, 255);
$black = ImageColorAllocate($image, 0, 0, 0);
ImageFill($image, 0, 0, $black);
ImageString($image, 5, 30, 6, $security_code, $white);
header(“Content-Type: image/jpeg”);
ImageJpeg($image);
ImageDestroy($image);
}
create_image() ;
exit();
?>
Trong trong form bạn tạo session để nhận những giá trị mà ta đã tạo và sử dụng ở phần trang random_image tiếp đến sẽ kiểm tra xem gnừoi dùng có nhấn submit hay không nếu chưa có ta sẽ tiếp tục kiểm tra xem người dùng có nhập lệnh vào textbox và đúng theo dãy số đã hiển thị trong ảnh không và đưa ra thông báo cho người dùng.

Gợi ý xem thêm:

  • Bộ tài liệu chuẩn hướng dẫn lập trình android tiếng việt

Ý kiến bạn đọc

Bình luận qua Disqus Facebook