Performanter Login-Mod
Verfasst: 31.07.2007 02:41
Hallo,
dann möchte ich hier auch mal meinen ersten Mod vorstellen. Es handelt sich um einen Mod, mit dem geprüft wird, ob man im Forum eingeloggt ist oder nicht. Sofern man eingeloggt ist, wird der Benutzername ausgelesen. Anders als bei den anderen Login-Mods wird aber KEINE einzige phpBB-Datei benötigt - was insbesondere aus Performancesicht kleine Vorteile mit sich bringen sollte.
Diesen Codeschnippsel einfach als include-datei laden. Danach kann bequem über if($login == 1) überprüft werden, ob derjenige angemeldet oder nicht ist.
Bei Fragen stehe ich gerne zur Verfügung.
Bei mir ist der Mod schon mehrere Monate einwandfrei im Einsatz.
dann möchte ich hier auch mal meinen ersten Mod vorstellen. Es handelt sich um einen Mod, mit dem geprüft wird, ob man im Forum eingeloggt ist oder nicht. Sofern man eingeloggt ist, wird der Benutzername ausgelesen. Anders als bei den anderen Login-Mods wird aber KEINE einzige phpBB-Datei benötigt - was insbesondere aus Performancesicht kleine Vorteile mit sich bringen sollte.
Code: Alles auswählen
$userid = 0;
$cookie_session_id_key = 'phpbb3_XYZ; // Muss individuell angepasst werden
$cookie_session_key = 'phpbb3_XYZ_k'; // Muss individuell angepasst werden
if(!empty($_COOKIE[$cookie_session_id_key]))
{
$result = mysql_query("SELECT session_user_id FROM phpbb_sessions WHERE session_id='".mysql_real_escape_string($_COOKIE[$cookie_session_id_key])."'");
if(mysql_num_rows($result) == 1)
{
$userid = mysql_result($result, 0);
if($userid > 1)
{
$login = 1;
$user = mysql_fetch_assoc(mysql_unbuffered_query("SELECT username FROM phpbb_users WHERE user_id= '$userid'"));
$nickname = $user["username"];
mysql_query("UPDATE phpbb_sessions SET session_time = ".time()." WHERE session_id = '".mysql_real_escape_string($_COOKIE[$cookie_session_id_key])."'");
}
}
else
{
$result = mysql_query("SELECT user_id FROM phpbb_sessions_keys WHERE key_id = '".mysql_real_escape_string(md5($_COOKIE[$cookie_session_key]))."'");
if(mysql_num_rows($result) == 1)
{
$userid = mysql_result($result, 0);
$login = 1;
$ip = $_SERVER["REMOTE_ADDR"];
$browser = $_SERVER["HTTP_USER_AGENT"];
mysql_query("INSERT INTO phpbb_sessions SET session_id = '".mysql_real_escape_string($_COOKIE[$cookie_session_id_key])."', session_user_id = '$userid', session_last_visit = ".time().", session_start = ".time().", session_time = ".time().", session_ip = '".mysql_real_escape_string($ip)."', session_browser = '".mysql_real_escape_string($browser)."', session_autologin = '1'");
mysql_query("UPDATE phpbb_sessions_keys SET last_ip = '".mysql_real_escape_string($ip)."', last_login = ".time()." WHERE key_id = '".mysql_real_escape_string(md5($_COOKIE[$cookie_session_key]))."'");
$user = mysql_fetch_assoc(mysql_unbuffered_query("SELECT username FROM phpbb_users WHERE user_id = '$userid'"));
$nickname = $user["username"];
}
}
}
Bei Fragen stehe ich gerne zur Verfügung.
Bei mir ist der Mod schon mehrere Monate einwandfrei im Einsatz.