Ứng dụng tạo mẫu xác nhận trong PHP căn bản

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Ứng dụng tạo mẫu xác nhận trong PHP căn bản Empty Ứng dụng tạo mẫu xác nhận trong PHP căn bản

Bài gửi by thamkk0212 14/4/2016, 16:39

Trong bài này , anh tiếp tục tìm hiểu thủ pháp tạo dãy số không hẹn mà có để chống tiến công flood dữ liệu. Hoặc ai đó cố tình spam khiến cơ sở dữ liệu của anh không thể xử lý tiếp được.
đầu tiên , chúng ta tiến hành tạo form HTML đơn giản để thực thi thao tác nhập liệu.
các anh chú ý phần hình ảnh , tại đây tôi truyền đường dẫn Ấy là liên kết tới trang random_image.php. Trang này cần thực thi công việc tạo ra những bức hình có dãy số ngẫu nhiên để phần nhập liệu của người sử dụng tham chiếu tới.
Tiếp theo , anh khởi tạo file random_image.php để lấy ra dãy số không hẹn mà có và nảy sinh chúng ngay trên tấm hình cho người truy nhập nhập liệu.
Để làm được điều đó. Anh cần phải khởi tạo session và lưu dãy số nhập liệu đó vào session của mình , sau thời gian ấy so khớp với trang form bên kia. Bạn có thể xem lại khái niệm PHP là gì để hiểu hơn về phương thức của PHP
Ban đầu mọi người sử dụng hàm md5 và ran để mã hóa các ký tự bao gồm số và chữ cái. Khi sử dụng hàm md5( ) ký tự nảy sinh phải lên tới 32 ký tự. Và chị chỉ lấy duy nhất 5 ký tự từ chuỗi mã hóa đó bằng hàm substr. Tiếp tục ta lưu đoạn mã hóa này trong session cụ thể $_SESSION['security_code'] , để tại trang form ta cần làm việc so sánh với phần nhập liệu của người làm việc.
Vậy nên đoạn code dưới sẽ giải quyết các tình huống này.
$md5_hash = md5( rand( 0 , 999 ) );
$security_code = substr( $md5_hash , 15 , 5 );
$_SESSION["security_code"] = $security_code;
?>
Kế đến ta khởi tạo tấm hình với chiều rộng và chiều cao mà ta Hướng dẫn thông qua hàm ImageCreate( ). Và tiếp kiến khai báo 2 màu chính là trắng và đen bằng hàm ImageColorAllocate( $image , red , green , blue ). Hàm này cần tạo ra một màu sắc từ hệ màu RGB trên tấm hình mà anh vừa khởi tạo.
Xem thêm : tài liệu học php cơ bản
tiếp chuyện ta đổ background của tấm hình phải là màu đen và chữ Lộ rõ ra trên tấm hình nên là màu trắng bằng hàm ImageFill( ) và hàm ImageString( ). Hàm ImageString có một số đối số căn bản như sau: ImageString( $image , 5 , 30 , 6 , $security_code , $white ); Trong đó:
+ $image là hình mà mọi người khởi tạo.
+ 5: là font-size mà anh quy ước cho ký tự hiện ra 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ị 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.
ế tới bạn sẽ dùng lệnh header để trả nội dung này phản hồi dữ liệu hình trạng. Và tiến hành khởi tạo định dạng cho file hình mà các chị vừa tạo là JPG đồng thời giải phóng hình tạm được sử dụng để khợi tạo ra tấm hình này bằng đoạn code sau:
header( "Content-Type: image/jpeg" );
ImageJpeg( $image );
ImageDestroy( $image );
?>
Để dễ quản lý các anh cần phải đặt tất cả đoạn code trên vào trong 1 hàm để dễ dùng và quản lý chúng thực sự giỏi hơn. Vậy tất đoạn code trong trang random_image.php của ngôn ngữ lập trình PHP
tiếp , trong trang form các chị cần phải khởi tạo session để chúng nhận được các giá trị mà ta đã khởi tạo và sử dụng ở trang random_image , kế tới ta thẩm tra xem người sử dụng có nhấn submit chưa. Chẳng hạn có ta sẽ tiếp kiểm tra xem người sử dụng nhập vào textbox có đúng là dãy số hiển thị trên hình ảnh hay không. Và xuất ra thông tin ứng với với nội dung của người nhập liệu
Qua Sự này , chị đã hiệu được nguyên tắc xử lý và những hàm cơ bản mà 1 hệ thống khi làm việc captcha cần phải ứng dụng Làm sao. Và hẳn nhiên hàm xử lí captcha này cũng chỉ mang cấu trúc tương đối. Để tăng cường tính bảo mật hơn , các anh nên sử dụng 1 số hàm chuyên dụng nhằm mã hóa hoặc gây nội dung khó nhìn hơn để chặn các tools hoặc các hệ thống giao thông bot có thể qua mặt tham số này.
thamkk0212
thamkk0212
Cấp 1
Cấp 1

Bài gửi : 46
Điểm : 3366
Like : 0
Tham gia : 18/11/2015

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

Permissions in this forum:
Bạn không có quyền trả lời bài viết