recaptcha

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

1. CAPTCHA คืออะไร

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

3. มารู้จัก reCAPTCHA กันเถอะ

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

1. Download library reCAPTCHA

2. ลงทะเบียนกับเว็บไซต์ http://recaptcha.net/ เพื่อขอ Public Key และ Private Key

3. เขียนโค้ด

เริ่มกันจ่ะ

1. คลิก Download library reCAPTCHA เพื่อดาวน์โหลดตัว reCAPTCHA

2. ขั้นตอนการลงทะเบียน เพื่อขอ Public Key และ Private Key

– เข้าไปที่ https://admin.recaptcha.net/accounts/signup/

– ป้อนรายละเอียดต่างๆในการลงทะเบียนให้เรียบร้อย แล้วกดปุ่ม Sign up Now!

– ป้อนชื่อเว็บไซต์ที่ท่านต้องการจะนำ reCAPTCHA ไปใช้ แล้วกดปุ่ม Create Key

– ท่านจะได้ Publick Key และ Private Key มา เป็นอันเสร็จกระบวนการขั้นตอนที่ 2

3. เขียนโค้ด

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
<?php
// Include reCAPTCHA ที่ดาวน์โหลดมา
require_once('recaptchalib.php');
 
// ใส่ Public Key และ Private Key ที่ได้จากการลงทะเบียน
$publickey = "6Lcq4AUAAAAAAFE0CUowWxxxxxxxxxxxxxxxxx";
$privatekey = "6Lcq4AUAAAAAAN9qoFEOxxxxxxxxxxxxxxxxxx";
 
$resp = null;
$error = null;
 
// ถ้าหน้านี้ถูกเรียกเพราะ User submit ฟอร์ม
if ($_POST["ispostback"]) {
		// ตรวจสอบค่าที่ป้อนใน reCAPTCHA มาว่าถูกต้องหรือเปล่า
        $resp = recaptcha_check_answer ($privatekey,
                                        $_SERVER["REMOTE_ADDR"],
                                        $_POST["recaptcha_challenge_field"],
                                        $_POST["recaptcha_response_field"]);
		// ถ้าถูกต้อง จะเขียนโค้ดเก็บข้อมูลลง database หรือจะทำอะไร ก็เขียนตรงนี้แหละ
        if ($resp->is_valid) {
                echo "คุณป้อนข้อมูล reCAPTCHA ถูกต้อง";
        } else {
		// ถ้าไม่ถูกต้อง เพราะอาจจะเป็นบอท ก็เขียนโค้ดเข้าไปตรงนี้
                echo $resp->error;
        }
}
?>
<html>
<body>
<form action="" method="post">
 
  <label for="username">Username</label>  :
  <input type="text" name="username" id="username">
 
  <label for="password">Password</label>  :
  <input type="text" name="password" id="password">
 
    <!-- แสดง ช่องให้ป้อน reCAPTCHA-->
    <?php echo recaptcha_get_html($publickey) ;?></p>
 
    <input name="ispostback" type="hidden" value="true">
    <input type="submit" value="submit" />
  </p>
</form>
</body>
</html>

ผลลัพธ์จากโค้ด

– recaptcha_get_html($publickey) คำสั่งนี้ไว้ใช้แสดงตัว reCAPTCHA โดยส่ง publickey เป็นพารามิเตอร์เข้าไป

– recaptcha_check_answer สำหรับตรวจสอบว่า User ป้อนข้อมูลที่ตัว reCAPTCHA แสดงไว้ ได้ถูกต้องหรือเปล่า โดยมีพารามิเตอร์ 4 ตัว ตัวที่ 1 คือ Private Key ส่วนอีก 3 ตัวท่านไม่ต้องเปลี่ยนแปลงใดๆ