W naszym ukochanym AMXBansie po usunięciu użytkownika WWW cały czas gość jest zalogowany i może robić wszystko (bo istnieje jego sesja).
W paru krokach można zaradzić takim sytuacją rozwalając sesję jeżeli użytkownika nie ma w bazie danych. Oto krótka instrukcja:
1. Otwórz plik /include/access.inc.php
2. Znajdź:
function has_access($value) { if($_SESSION["loggedin"]) { return $_SESSION[$value]=="yes"; } return 0; }
3. Dodaj za powyższym kodem:
function is_in_base() { global $config; $cook = explode(":", sql_safe($_COOKIE[$config->cookie])); $sid = $cook[0]; $query = mysql_query("SELECT id,username,level,email FROM `".$config->db_prefix."_webadmins` WHERE logcode='".$sid."' LIMIT 1") or die (mysql_error()); if(mysql_num_rows($query) < 1) { return false; } else { return true; } }
4. Dalej znajdź:
if(isset($_COOKIE[$config->cookie]) && $_SESSION["loggedin"]==true) { $query = mysql_query("UPDATE `".$config->db_prefix."_webadmins` SET `last_action`=UNIX_TIMESTAMP() WHERE `id`=".$_SESSION["uid"]); }
5. Zamień na:
if(isset($_COOKIE[$config->cookie]) && $_SESSION["loggedin"]==true) { if(!is_in_base()) { unset($_SESSION["uid"]); unset($_SESSION["uname"]); unset($_SESSION["email"]); unset($_SESSION["level"]); unset($_SESSION["sid"]); unset($_SESSION["loggedin"]); } else { $query = mysql_query("UPDATE `".$config->db_prefix."_webadmins` SET `last_action`=UNIX_TIMESTAMP() WHERE `id`=".$_SESSION["uid"]); } }
6. Zapisz i zamknij plik.
Dziękuje