Mod แรกในชีวิต กับ Captcha ภาษาไทย ตอนสมัครสมาชิก
แก้ไขครั้งสุดท้ายโดย Mooping เมื่อ 2011-8-26 20:54แก้ไขครั้งสุดท้ายโดย Mooping เมื่อ 2011-8-26 20:51
แก้ไขครั้งสุดท้ายโดย Mooping เมื่อ 2011-8-26 18:56
แก้ไขครั้งสุดท้ายโดย Mooping เมื่อ 2011-8-26 18:55
แก้ไขเรื่อง cache file แล้วนะครับ
พอทำเสร็จ รหัสลับตอนสมัครจะเป็น captcha ภาษาไทยแบบในรูปนะครับ กันสแปมได้ดีมากๆ
วิธีทำ
1. ก่อนอื่น ดาวน์โหลดไฟล์ก่อนครับ (มือใหม่ ขอตังใช้บ้างเน้อ :lol )
2. แตกไฟล์ แล้ว แก้ไขไฟล์ captcha_word.inc.php ใส่เซ็ตของคำได้ตามชอบใจ<?
$captcha='คินดะอิจิ';
$captcha='จอมโจรคิด';
$captcha='เซนเซย่า';
$captcha='ซุนหงอคง';
$captcha='ซุนโกฮัง';
$captcha='ฮันมะบากิ';
$captcha='เซเลอร์มูน';
$captcha='โดราเอมอน';
$captcha='มาริโอ้';
$captcha='โคทาโร่';
?>
3. แก้ไขไฟล์ captcha.php บรรทัดที่ 5if ($sec!=md5($id.'YOUR SECURITY CODE HERE'.date('Y-m-d'))) { exit();}เปลี่ยน YOUR SECURITY CODE HERE เป็นรหัสลับของคุณ
4. เอาไดเรกทอรี captcha ไปวางไว้ที่ path ROOT ของ discuz
5. แก้ไขไฟล์ template\default\member\register.htm
ค้นหาโค้ด
<div id="layer_reginfo_b">
<div class="rfm mbw bw0">
เอาโค้ดข้างล่าง ไปวาง ก่อนหน้าโค้ดข้างบน
{eval
$captcha_id=rand(0,จำนวนคำ);$captcha_sec=md5($captcha_id.'YOUR SECURITY CODE HERE'.date('Y-m-d'));
}
<div class="rfm">
<table>
<tr>
<th><span class="rq">*</span><label for="seccodeverify">รหัสลับ:</label></th>
<td><input type="text" id="seccodeverify" name="seccodeverify" autocomplete="off" size="25" tabindex="1" class="px" required />
<br />
ป้อนตัวอักษรในภาพด้านล่าง<br />
<img src="captcha/captcha.php?id={$captcha_id}&sec={$captcha_sec}">
<input type="hidden" name="hash" value="{$captcha_id}">
</td>
<td class="tipcol"><i id="tip_seccodeverify" class="p_tip">กรุณากรอกข้อความที่แสดงในภาพ</i><kbd id="seccodeverify" class="p_chk"></kbd>
</td>
</tr>
</table>
</div>
ตรงจำนวนคำ ใส่ตามจำนวนคำที่คุณมีใน captcha_word.inc.php
ตรง YOUR SECURITY CODE HERE ใส่ระหัสลับของคุณให้ตรงกับใน captcha.php
6. แก้ไขไฟล์ source\class\class_member.php
ค้นหาโค้ดนี้if(!submitcheck('regsubmit', 0, $seccodecheck, $secqaacheck)) {
...
} else {
...
}ในบรรทัดแรก ต่อจาก } else { ใส่โค้ดนี้ลงไปinclude_once(DISCUZ_ROOT."/captcha/captcha_word.inc.php");
if (trim($captcha[$_POST['hash']])!=trim($_POST['seccodeverify'])) {
showmessage('submit_seccode_invalid');
}7. เข้าไปปิด captcha เดิมของ discuz เพื่อไม่ให้ซ้ำซ้อนกัน
8. ไปที่เครื่องมือ -> กด อัพเดต cache -> ตกลง
การปรับแต่งเพิ่มเติม
คุณสามารถใช้ font ของคุณเอง และภาพพื้นหลังของคุณเอง โดยแก้ไขในไฟล์ captcha.php
$img_path = 'captcha.jpg';
$font = './Ti_Text.ttf';
ทำเสร็จแล้วควรจะตั้งค่าในเซิฟเวอร์ให้เรียกไฟล์
http:///template/default/member/register.htmโดยตรงไม่ได้ด้วยนะครับ เพื่อปกปิดโค้ด
เรื่องนี้ผมว่าเซิฟเวอร์ดิสคัส ร้อยทั้งร้อยไม่ได้กันไว้
อันไหนหรา:funk: 5. แก้ไขไฟล์ data\template\1_1_member_register.tpl.php
ไฟล์ที่คุณแก้ไขนั้น มันเป็นไฟล์แคชนะครับ
เวลากดอัพเดตไฟล์แคชในแอดมินซีพี
ค่าที่คุณแก้ไขไว้ มันก็หายไปหมดเลยนะ!
sm910dzsm910dzsm910dzsm910dz
ปล. ทางที่ดี เวลาจะทำ MOD อะไรก็ตาม อย่าไปยุ่งใน data\template เลยครับ เพราะอย่างไรก็ตาม เมื่อเรากดอัพเดตแคช ค่าที่เราแก้ไขก็จะถูกย้อนกลับไปใช้ค่าก่อนหน้าที่เราจะแก้ไขครับ
ปลล. หากแต่ไม่กดอัพเดตไฟล์แคช อันนี้ก็ไม่ว่ากัน(ว่าแต่เว็บดิสคัสเรา จะไม่กดอัพเดตแคชซักทีหรอกเหรอ)
ปลลล. ทั้งหมดทั้งมวลนี้ ก็ฝากให้คิดเป็นการบ้านนะครับ อ้าวเหรอ กรรม Y_Y sm913dzsm913dzsm913dz
เพิ่งมาจับ discuz ได้ไม่กี่วันอ่ะครับ อาศัยแกะๆโค้ดเอา เดี๋ยวทำใหม่
ลองแก้ไขตามที่พี่ๆเขาแนะนำกันดูนะครับ อิอิ
รอดูผลงานครับ ^^" sm926dz ต้นฉบับโพสต์โดย MasterTGZ เมื่อ 2011-8-26 21:05 static/image/common/back.gif
ลองแก้ไขตามที่พี่ๆเขาแนะนำกันดูนะครับ อิอิ
รอดูผลงา ...
แก้ไขไปแล้วอ่ะครับ ดูดีๆจิ อิอิ :P เป็น Webastermoohin com หรอครับ แก้ไขครั้งสุดท้ายโดย Mooping เมื่อ 2011-8-27 23:43
แหะๆ ใช่ครับ กำลังทดสอบ discuz อยู่ครับ ฝากเนื้อฝากตัวด้วย สงสารชาวต่างชาติ ฮาๆๆ ~ ใจจ่ะ{:979:}{:15_677:}
หน้า:
[1]
2