อ่านกันเสียก่อน

1. CAPTCHA คืออะไร

2. CAPTCHA – เอ็งเป็นมนุษย์ใช่บ่

วันนี้ผมจะมาอธิบายการนำใช้งาน CAPTCHA อีกตัวหนึ่งที่น่าสนใจ คือ Securimage CAPTCHA ไปใช้ในเว็บท่านเพื่อกรองพวกสแปม วิธีการใช้งานนั้นแบ่งออกเป็น 2 ขั้นตอนหลักๆ คือ

1. Download library Securimage

2. เขียนโค้ด

เอ้าฮุยเลฮุย ลุยกันพี่น้อง

1. คลิก Securimage 1.0.3.1 (zip) เพื่อดาวน์โหลดตัว library

2. เขียนโค้ด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
session_start();
 
// ถ้า user submit ฟอร์มมา
if( $_POST['ispostback'] ){
 
	// include library เข้ามา
	include_once 'securimage/securimage.php';
 
	// สร้าง instant Securimage ขึ้นมาก่อน	
	$securimage = new Securimage();
 
	// เช็ก ถ้า User ป้อน CAPTCHA มาถูกต้อง
	if ($securimage->check($_POST['captcha_code']) == true) {
		  // อยากทำอะไรก็ทำ;
		  echo "CAPTCHA ถูกต้อง";
	}else{
	// เช็ก ถ้า User ป้อน CAPTCHA มาไม่ถูกต้องถูกต้อง
		  echo "CAPTCHA ไม่ถูกต้อง";
	}
 
 
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>การใช้งาน Securimage CAPTCHA</title>
</head>
<body>
<form name="form1" id="form1" method="post" action="">
  <p>
    <label for="username">Username : </label>
    <input type="text" name="username" id="username">
  </p>
  <p>
    <label for="password">Password : </label>
    <input type="password" name="password" id="password">
  </p>
  <p>
    <label for="label">ป้อนตัวหนังสือที่เห็นในภาพ : </label>
    <!-- ต้องเตรียมช่องไว้ให้ user ป้อน CAPTCHA -->
    <input type="text" name="captcha_code" id="captcha_code">
  </p>
  <p>
    <!-- แสดงตัว  Securimage CAPTCHA -->
    <img src="securimage/securimage_show.php?sid=&lt;?php echo md5(uniqid(time())); ?&gt;" id="image" /> </p>
  <p>
    <input name="ispostback" type="hidden" value="true">
    <input type="submit" name="button" id="button" value="Submit">
  </p>
</form>
</body>
</html>

ผลลัพธ์ จากโค้ดด้านบน จะเป็นดังนี้

โค้ดที่สำคัญๆ มีแค่ไม่กี่บรรทัดเองครับ

<img src="securimage/securimage_show.php?sid=<?php echo md5(uniqid(time())); ?>" id="image" />

ให้ไฟล์ securimage_show.php สร้างภาพที่ประกอบไปด้วยตัวอักขระ แบบสุ่ม โดยเราส่ง พารามิเตอร์แบบ GET ชื่อ sid ไปให้ตัวนึง พารามิเตอร์ตัวนี้จะมีค่าไม่ซ้ำกันเลย

session_start();

ต้อง start session ก่อนเลย เพราะตัว securimage เก็บค่าที่สุ่มได้ไว้ในตัวแปร session

$securimage->check($_POST['captcha_code'])

คำสั่งนี้จะคืนค่าเป็น true/false ขึ้นอยู่กับ พารามิเตอร์ที่ส่งเข้าไป ที่ค่าเท่ากับ ค่าที่สุ่มได้มาตอนที่ให้แสดงภาพหรือเปล่า

เห็นมั้ยครับว่าใช้งาน ง้ายง่าย

ข้อมูลเพิ่มเติม

1. http://www.phpcaptcha.org/
2. Quickstart Guide
3. F.A.Q.