引用 | 編輯
香吉士
2009-09-30 18:43 |
樓主
|
||
x1
【插件資訊】插件名稱:[轉]禁止雙重登入 適用版本:7.0 語言編碼:通用 插件作者:author NTjames 或者叫 Cyril Yau 版權所屬:author NTjames 或者叫 Cyril Yau 原帖連結:http://www.alan888.com/Discuz/thread-175119-1-2.html 支持網站:http://www.alan888.com/Discuz/thread-175119-1-2.html 【插件說明】 作者前言: 因為小弟快要去加拿大,決定未完成測試也要發放,怕去了加拿大就沒有機會了,我一定要『遺禍AL8』 由於最近發覺有些會戶帳號有多於一名用家同時使用(唔知點解架啵- -" ) ,只好增加這個功能,阻止用家登入正在使用中的帳號 因為,小弟在7.1的新核心相容唔到...只好手動添加 此插件的帳號是否在使用中是經cdb_sessions查詢,會員登出後cdb_sessions會自動更新 但若會員有習慣去不登出離開,則cdb_sessions需要等閣下於後台調節緩存更新時間,自行更新 未來路向: 如有需要,完成IP Check功能 如果技術上許可,加上強行踢另一名使用中的用家離線 盡量完成在使用討論區功能時,阻止多於一位用家使用同一帳號[即所有action執行前都要檢查] 版權問題 1.本作者非常歡迎各位分享,但請在轉帖時在文章主題加上[轉]並保留版權資訊 2.如有必要進行二次修改,請務必通知我(Alan888的會員請PM我(NTjames),其他的會員請EMAIL(oops.idiot.galaxy@gmail.com或cyrilyau821@gmail.com) Discuz 7.1 修改 1./include/login.func.php 複製程式 if(!$member) { return -1; } 複製程式 $usercheck = $db->result_first("SELECT COUNT(*) FROM {$tablepre}sessions WHERE username='$username'"); if($usercheck) { return -2; } 2../logging.php 找: 複製程式 } elseif($result == -1) { $ucresult['username'] = addslashes($ucresult['username']); $auth = authcode("$ucresult[username]\t".FORMHASH, 'ENCODE'); if($inajax) { $message = 2; $location = $regname.'?action=activation&auth='.rawurlencode($auth); include template('login'); } else { showmessage('login_activation', $regname.'?action=activation&auth='.rawurlencode($auth)); } 複製程式 } elseif($result == -2) { showmessage('此用戶正在瀏覽本站中,請先確保已經在其他電腦登出後,才再次登入本站,如果此訊息持續出現或懷疑用戶被盜用,請與壇主聯絡', 'logging.php?action=login'); Discuz 7.0 修改 1./logging.php 找: 複製程式 if(isset($loginauth)) { list($username, $password) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1); } 複製程式 $usercheck = $db->result_first("SELECT COUNT(*) FROM {$tablepre}sessions WHERE username='$username'"); if($usercheck) { showmessage('此用戶正在瀏覽本站中,請先確保已經在其他電腦登出後,才再次登入本站,如果此訊息持續出現或懷疑用戶被盜用,請與壇主聯絡'); } ---------------------------------------------------------------------- 2009-9-27 20:05 前改的,請看以下更正 [quote]更正,(已改) 因為重複5次密碼錯誤有利用logincheck,為免出錯,整個插件改寫了 請用Discuz7.x原檔,重新修改 x0
|