อ่านกันเสียก่อน
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=<?php echo md5(uniqid(time())); ?>" 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 ขึ้นอยู่กับ พารามิเตอร์ที่ส่งเข้าไป ที่ค่าเท่ากับ ค่าที่สุ่มได้มาตอนที่ให้แสดงภาพหรือเปล่า
เห็นมั้ยครับว่าใช้งาน ง้ายง่าย
ข้อมูลเพิ่มเติม
สมชาย says:
13/01/2554 at 13/01/2554
ผมคัดลอกไปทำตัวอักษร captcha มันไม่สวยเหมือนตัวอย่างที่หน้าเว็บนี้นี่ครับ ทำไงให้ได้หน้าตาแบบของท่าน ช่วยบอกเพิ่มหน่อย
administrator says:
13/01/2554 at 13/01/2554
ท่านดาวน์โหลดเวอร์ชั่น 2.0 มาหรือเปล่า ผมลองเข้าไปดูในแกลเลอรี่เขา 2.0 ไม่ค่อยจะสวยเท่าไร
http://www.phpcaptcha.org/captcha-gallery/
แต่ท่านเชื่อหรือไม่ว่าความไม่สวยนั้นดีกว่าความสวย เนื่องจากเดี๋ยวนี้บอทเองมีการพัฒนามากขึ้น มันสามารถอ่านแคปช่าที่ไม่ซับซ้อนได้แล้ว คนพัฒนาแคปช่าจึงต้องเพิ่มรายละเอียดในภาพให้มากขึ้น ตัวหนังสือโย้เย้มากขึ้น เพื่อไม่ให้บอทอ่านได้
pandalovebanana says:
03/10/2555 at 03/10/2555
ของที่ผมทำมันแปลกๆครับ พิมพ์ ตัวอักษรถูกต้อง มันก็ยังส่งเมลล์ได้ งงๆอยู่ครับ