Tự viết captcha đơn giản cho WordPress

Cập nhật lần cuối vào

Captcha là thứ rất cần thiết từ trước đến nay, bài viết này mình sẽ hướng dẫn cho các bạn cách tạo ra một mã captcha đơn giản để sử dụng trên WordPress thông qua ngôn ngữ chính là PHP. Đã có nhiều plugin captcha cho bạn sử dụng, mục đích của bài viết này chỉ để các bạn tham khảo, dành cho những bạn đam mê lập trình WordPress như mình.

Tự viết captcha đơn giản cho WordPress

Đầu tiên, bạn phải hiểu được định nghĩa captcha là gì? Captcha là hình ảnh chứa đoạn mã xác nhận giúp phân biệt đối tượng đang truy cập là người hay máy. Đây là công cụ rất hiệu quả trong việc ngăn chặn các hành vi lập tài khoản diễn đàn, website, e-mail với số lượng lớn nhờ các chương trình tự động.

Đầu tiên bạn tạo một tập tin với tên captcha.php với nội dung như bên dưới:

session_start();
$code = rand(10000, 99999);
$_SESSION['code'] = $code;
$im = imagecreatetruecolor(87, 25);
$bg = imagecolorallocate($im, 255, 255, 255);
$fg = imagecolorallocate($im, 138, 200, 67);
imagefill($im, 0, 0, $bg);
imagestring($im, 5, 5, 5,  $code, $fg);
header("Cache-Control: no-cache, must-revalidate");
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

Trong đoạn code bên trên, bạn có thể thay đổi lại biến $code để làm khác đi chuỗi ký tự đầu vào, sau khi đã tạo ra code thì bạn lưu mã này vào trong SESSION.

Tiếp đến trong đoạn code HTML của bạn, bạn sử dụng dựa theo ví dụ bên dưới:

<html>
<head>
	<title>Test Form</title>
</head>
<body>
	<form action="validate.php" method="post">
		Enter Image Text
		<input name="captcha" type="text">
		<img src="captcha.php" /><br>
		<input name="submit" type="submit" value="Submit">
	</form>
</body>
</html>

Cuối cùng là bạn tạo tập tin validate.php để kiếm tra giá trị người dùng nhập vào với nội dung như mình nêu bên dưới:

session_start();
if(isset($_POST["captcha"]) && $_POST["captcha"] != "" && $_SESSION["code"] == $_POST["captcha"]) {
	echo "Correct Code Entered";
} else {
	die("Wrong Code Entered");
}

Sau khi người dùng submit form thì hệ thống sẽ chuyển sang trang validate.php, nếu như mã captcha đúng thì sẽ hiển thị dòng thông báo Correct Code Entered, ngược lại nếu mã captcha sai thì sẽ hiển thị dòng thông báo Wrong Code Entered.

Như vậy là qua bài viết này bạn đã phần nào hiểu được cơ chế hoạt động của một hệ thống captcha đơn giản, từ ví dụ này bạn có thể áp dụng vào dự án WordPress của bạn, tùy biến lại code và bổ sung thêm nhiều tính năng hơn. Chúc bạn thành công.