- เครดิต
- 56
- เพื่อน
- ทักทาย
- บล็อก
- อัลบั้ม
- โพสต์
- กระทู้
- แชร์
- สำคัญ
- สิทธิ์อ่าน
- 10
- จำนวนผู้ติดตาม
- จำนวนผู้กำลังติดตาม
- เพศ
- ไม่บอก
|
แก้ไขล่าสุดโดย tongect เมื่อ 2010-8-2 12:06
ผมลองแก้ใน เวอร์ชั่น 7.2 นะครับ
ตอนแแรก เปิดไฟล์ โฟลเดอร์ include ชื่อไฟล์ misc.func.php
ดูใน function logincheck นี้ครับ- function logincheck() {
- global $db, $tablepre, $onlineip, $timestamp;
- $return = 0;
- $login = $db->fetch_first("SELECT count, lastupdate FROM {$tablepre}failedlogins WHERE ip='$onlineip'");
- $return = (!$login || ($timestamp - $login['lastupdate'] > 900)) ? 4 : max(0, 5 - $login['count']);
- if($return == 4) {
- $db->query("REPLACE INTO {$tablepre}failedlogins (ip, count, lastupdate) VALUES ('$onlineip', '1', '$timestamp')");
- $db->query("DELETE FROM {$tablepre}failedlogins WHERE lastupdate<$timestamp-901", 'UNBUFFERED');
- }
- return $return;
- }
คัดลอกไปที่คลิปบอร์ด 900 คือเวลาที่เมื่อ login ซ้ำ เกิน 5 ครั้ง แล้้วเราต้องรอ 15นาที ( 900วินาที)
ส่วนจำนวนครั้ง ก็ คือ 5 ซึ่งถ้าจะแก้ เป็น 10 ครั้ง ต้องแก้ 2 บรรทัดนี้ครับ- $return = (!$login || ($timestamp - $login['lastupdate'] > 900)) ? 4 : max(0, 5 - $login['count']);
- if($return == 4) {
คัดลอกไปที่คลิปบอร์ด 5 คือจำนวนครั้งที่ให้ login ซ้ำ
4 คือค่าที่จะต้องแก้ โดยแก้ให้น้อยกว่าค่า จำนวนครั้งที่ให้ login ซ้ำ อยู่ 1 ก็คือ (5 - 1 = 4)
ถ้าจะแก้ เป็น 10 ครั้ง ก็ให้แก้เป็นแบบนี้ครับ- $return = (!$login || ($timestamp - $login['lastupdate'] > 900)) ? 9 : max(0, 10 - $login['count']);
- if($return == 9) {
คัดลอกไปที่คลิปบอร์ด ส่วนการแก้ไขเวลาที่รอ จาก code ข้างบนสุดจะเห็นว่า มีเลขที่ เป็น 900 กับ 901 ให้แก้ไขตรงนั้นครับ จะปรับลด หรือเพิ่ม ก็ได้ตามสะดวกครับ
จากนั้น ให้ แก้ไขที่ไฟล์ logging.php ที่อยู่ใน folder หลัก นะครับ- if($seccodecheck && $seccodedata['loginfailedcount']) {
- $seccodecheck = $db->result_first("SELECT count(*) FROM {$tablepre}failedlogins WHERE ip='$onlineip' AND count>='$seccodedata[loginfailedcount]' AND $timestamp-lastupdate<=900");
- $seccodescript = '<script type="text/javascript" reload="1">if($(\'seccodelayer\').innerHTML == \'\') ajaxget(\'logging.php?action=seccode\', \'seccodelayer\');</script>';
- }
คัดลอกไปที่คลิปบอร์ด จะเห็นว่ามีเลข 900 อยู่ให้แก้ไข ตรงนี้ด้วยนะครับ
แค่นี้ก็เป็นอันใช้ได้แล้วครับ
่ส่วนเรื่องแก้ไขภาษา ก็จะอยู่ในไฟล์ ที่อยู่ในโฟลเดอร์ templates/default/ messages.lang.php ครับ
บรรทัดที่ชื่อ 'login_strike' => 'เข้าระบบผิดพลาดเกินกำหนด กรุณารอหลังจาก 15 นาที แล้วลองอีกครั้ง', ให้แก้ตรงนี้ครับ
แค่นี้ก็เสร็จแล้วครับ |
|
|
|
|
|
|