گوگل جدیدا سرویس تشخیص اسپمر های خود یا همان Google reCaptcha قدیمی را نونوار کرده است و دیگر از کدهای درهم و پیچ خورده و ناخوانا خبری نیست . فقط کافی است یک تیک بزنید و قضیه تمام است
ثبت وبسایت و دریافت Secret Code
سایت خود را در Google reCaptcha به ثبت کنید .برای این کار به این آدرس مراجعه کنید.
به حساب جیمیل تان وارد شوید و سپس فرم زیر را تکمیل نمایید
بعد از تکمیل و ارسال فرم بالا گوگل دو مورد مهم را برای شما نشان می دهد :
- Site key
- Secret key
قرار دادن reCaptcha در سایت شما
برای اینکه کپتچا در سایت شما فعال شود باید هم در سمت کاربر و هم در سمت سرور تغییراتی ایجاد کنید . در سمت کاربر فایل HTML را باز کرده و کد زیر را قبل از تگ پایانی <head>
قرار دهید :
<script src=’https://www.google.com/recaptcha/api.js?hl=fa’></script>
هنگامی که فرم ارسال می شود یک مقدار با نام “g-recaptcha-response” به سمت سرور ارسال می گردد که می توانید از آن برای تشخیص اینکه کاربر تیک کپچا را زده است یا خیر استفاده کنید .
ایجاد یک فرم ارسال نظر با استفاده از reCaptcha
<html> <head> <title>Google recapcha demo – Codeforgeek</title> <script src=‘https://www.google.com/recaptcha/api.js’></script> </head> <body> <h1>Google reCAPTHA Demo</h1> <form id=“comment_form” action=“form.php” method=“post”> <input type=“email” placeholder=“Type your email” size=“40”><br><br> <textarea name=“comment” rows=“8” cols=“39”></textarea><br><br> <input type=“submit” name=“submit” value=“Post comment”><br><br> <div class=“g-recaptcha” data-sitekey=“=== Your site key ===”></div> </form> </body> </html> |
در سمت سرویس دهنده از زبان PHP استفاده می کنیم و داده هایی را که توسط فرم ارسال شده اند و در داخل متغیر سراسری $_POST
هستند را چک می کنیم
<?php
$email;$comment;$captcha;
if(isset($_POST[’email’])){
$email=$_POST[’email’];
}if(isset($_POST[‘comment’])){
$email=$_POST[‘comment’];
}if(isset($_POST[‘g-recaptcha-response’])){
$captcha=$_POST[‘g-recaptcha-response’];
}
if(!$captcha){
echo ‘<h2>Please check the the captcha form.</h2>’;
exit;
}
$response=file_get_contents(“https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=”.$captcha.”&remoteip=”.$_SERVER[‘REMOTE_ADDR’]);
if($response.success==false)
{
echo ‘<h2>You are spammer ! Get the @$%K out</h2>’;
}else
{
echo ‘<h2>Thanks for posting comment.</h2>’;
}
?>
همانطور که می بینید در کد بالا اطلاعات مربوطه را به آدرس سرویس recaptcha ارسال می کنیم و اطلاعات دریافتی از گوگل را که به صورت json
هستند چک می کنیم تا مطمئن شویم کاربر اسپمر نیست
$response=file_get_contents(“https://www.google.com/recaptcha/api/siteverify?secret=YOUR SECRET KEY&response=”.$captcha.”&remoteip=”.$_SERVER[‘REMOTE_ADDR’]);
سلام. چجوری میشه از مثل شما از نسخه فارسیش استفاده کنیم؟
دوست عزیز شما می بایست از آدرس زیر استفاده کنید
https://www.google.com/recaptcha/api.js?hl=fa