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 ![]()


Dodatki SourceMod














