รับทำเว็บไซต์ครบวงจร
เลือกภาษา Thai English     facebook
รายการหลัก



บทความ


Page Ranking Tool

การใช้ google reCaptcha กับ PHP


สอน Google
> การใช้ google reCaptcha กับ PHP


ก่อนอื่นต้องลงทะเบียนเพื่อใช้งานกันก่อน วิธีการก็ไม่ยุ่งยากครับแค่เข้าไปที่เว็บไซต์ reCAPTCHA จากนั้นก็กดที่ปุ่ม Get reCAPTCHA ด้านขวาบนเพื่อเข้าสู่ขั้นตอนการลงทะเบียน ที่หน้าลงทะเบียนให้ใส่ชื่อโดเมนเนมที่เราจะใช้ตรงช่องสำหรับกรอกโดเมนเนม (หนึ่งบรรทัดต่อหนึ่งโดเมนเนมครับ)

1 ลงทะเบียนโดเมนเนม

หลังจากลงทะเบียนเสร็จแล้วเราก็จะได้คีย์สำหรับใช้งานมาสองอัน อันแรกจะเป็นคีย์สาธารณะ (Public Key) ตรงช่องที่เขียนว่า Site key ส่วนอีกอันจะเป็นคีย์ลับ (Private Key) ตรงช่องที่เขียนว่า Secret key

2 คีย์

สำคัญ คีย์ลับนั้นต้องเก็บไว้ที่ฝั่งเซิฟเวอร์เท่านั้นระวังห้ามสลับกันเด็ดขาด

เมื่อได้คีย์มาแล้ว เราก็จะมาสร้างฟอร์มสำหรับให้ผู้ใช้ล็อกอินพร้อมกับใส่ reCAPTCHA แบบใหม่ลงไปด้วย



  Code
<form method="post">
<div class="form-group">
<label for="username">Username</label>
<input type="text" name="username" id="username" class="form-control">
</div>

<div class="form-group">
<label for="password">Password</label>
<input type="password" name="password" id="password" class="form-control">
</div>

<div class="form-group">
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
</div>

<div class="form-group">
<input type="submit" value="Sign In" class="btn btn-primary">
</div>
</form>



จากตัวอย่างข้างบนจะสังเกตุเห็นว่ามี div อยู่หนึ่งอันที่มี class ชื่อว่า g-recaptcha ตรงนี้จะถูก reCAPTCHA เปลี่ยนเป็นกล่องสำหรับแสดง CAPTCHA เองครับ ส่วนตรง data-sitekey ให้ใส่คีย์สาธารณะที่ได้มาลงไป

จากนั้นเพิ่มจาวาสคริปต์ลงไปก่อนปิดแทกบอดี้



  Code
<script src='https://www.google.com/recaptcha/api.js'></script>


ทดลองเรียกหน้าเว็บขึ้นมาดูจะได้ฟอร์มสำหรับล็อกอินพร้อมกับ reCAPTCHA แบบใหม่นี้ครับ ขั้นตอนต่อไปเราจะสร้าง PHP สำหรับตรวจสอบว่าผู้ใช้งานที่เข้าสู่ระบบนั้นเป็นมนุษย์หรือบอทกันแน่



  Code
<?php

define('SITE_KEY', YOUR_SITE_KEY);
define('SECRET_KEY', YOUR_SECRET_KEY);

// Accept only POST method
if ( ! strcmp($_SERVER['REQUEST_METHOD'], 'POST'))
{
$params = array(
'secret' => SECRET_KEY,
'response' => $_POST['g-recaptcha-response'],
'remoteip' => $_SERVER['REMOTE_ADDR']
);

$url = 'https://www.google.com/recaptcha/api/siteverify?' . http_build_query($params);
$result = file_get_contents($url);

// Convert JSON string to standard PHP object
$resultObject = json_decode($result);

if ($resultObject->success)
{
// TODO I'm a human.
}
else
{
// TODO I'm a robot.
}
}



ตรงช่อง YOUR_SITE_KEY และ YOUR_SECRET_KEY ให้ใส่คีย์ที่ได้มาในตอนแรกครับ สิ่งที่จะต้องส่งไปตรวจสอบมีอยู่ 3 ฟิลด์คือ secret, response และ remoteip ตามตัวอย่างครับ ค่าที่ได้กลับมาจะอยู่ในรูปของ JSON ซึ่งจะมีฟิลด์ success บอกว่า true หรือ false (เป็นบูลีน) ซึ่งถ้าได้ false ก็จะมี error-codes มาด้วยครับ

เห็นไหมครับไม่ยากเลยแถมผู้ใช้งานก็มีความสุขไม่ต้องกรอกตัวอักษรหยึก ๆ ยือ ๆ ให้ปวดหัวอีกต่อไป ถือว่าเป็นการเปลี่ยนแปลงที่เยี่ยมยอดไปเลยครับ

ขอบคุณ: https://nomkhonwaan.com/No-CAPTCHA-reCAPTCHA/

Short URL click!
<< กลับคืน : เข้าชม 9,506 ครั้ง : ขึ้นไปด้านบน

รับทำเว็บไซต์ รับสร้างเว็บไซต์ รับออกแบบเว็บ รับเขียนเว็บ รับสอนทำเว็บ รับเช่า hosting รับเช่าพื้นที่เว็บไซต์ จดชื่อเว็บ รับโปรโมทเว็บไซต์ รับดูแลเว็บ SiteMap
สปริงเกอร์http://www.xn--22c2c4blb9n.xn--o3cw4h/