SMF – การติดตั้ง reCAPTCHA สำหรับ SMF (ก่อนที่จะกดปุ่ม Post)

การติดตั้ง reCAPTCHA สำหรับ SMF

กรณีใช้ reCAPTCHA ในหน้าสมัครสมาชิกสามารถดาวน์โหลด mod ได้ที่
//custom.simplemachines.org/mods/index.php?mod=1044

แต่ผมจะแนะนำก็คือ การนำ reCAPTCHA มาใช้งานขณะผู้เยี่ยมชมตั้งกระทู้หรือตอบกระทู้

1. สมัครสมาชิกได้ที่ reCAPTCHA Register

หลังจากสมัครเสร็จคุณจะได้รับ Public Key และ Private Key (ใช้ติดต่อสื่อสารระหว่างเซิร์ฟเวอร์และเซิร์ฟเวอร์ของเรา ทำให้ลับยิ่งขึ้น)

2. ดาวน์โหลด  reCAPTCHA PHP library ไฟล์สำหรับ PHP

3. แตกไฟล์ library แล้วอับโหลดไฟล์ recaptchalib.php (ใช้ไฟล์เดียว)

– สร้างไดร์เรอทอรี ชื่อ captcha ที่รูท forum
– อับโหลดไฟล์ recaptchalib.php ไปยัง ไดร์เรอทอรี captcha

4. ดาวน์โหลดไฟล์ Post.template.php

/Themes/default/Post.template.php

ค้นหา

// Show some useful information such as allowed extensions, maximum size and amount of attachments allowed.
if (!empty($modSettings['attachmentCheckExtensions']))
echo '
', $txt['smf120'], ': ', $context['allowed_extensions'], '
';
echo '
', $txt['smf121'], ': ', $modSettings['attachmentSizeLimit'], ' ' . $txt['smf211'], !empty($modSettings['attachmentNumPerPostLimit']) ? ', ' . $txt['maxAttachPerPost'] . ': ' . $modSettings['attachmentNumPerPostLimit'] : '', ''; 

}

พิมพ์ต่อท้าย

// Start; Recaptcha on Guest Posts
echo ' 

';
if ($context['user']['is_guest']) {

require_once('captcha/recaptchalib.php');
$publickey = "your public key"; // you got this from the signup page
echo recaptcha_get_html($publickey);
}
// End; Recaptcha on Guest Posts

บรรทัด $publickey = “your public key”; // ให้ระบุ Public Key คุณ

5. ดาวน์โหลดไฟล์ Post.php

/Sources/Post.php

ค้นหา

"function Post2()"

แล้วเพิ่ม

//reCAPTCHA
require_once('captcha/recaptchalib.php');
$privatekey = "your_private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER['REMOTE_ADDR'],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]); 

if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
}

บรรทัด $privatekey = “your_private_key”; // ให้ระบุ Private Key คุณ

Link of ReferenceUsing reCAPTCHA with PHP

บทความอื่นๆ ที่เกี่ยวกับการหยุด Spam

หยุด Joomla registration spam

ติดตั้ง MOD httpBL (Stop bots and spammers)