sehr viele Einträge in Tabelle phpBB3_sessions
Verfasst: 17.06.2009 19:04
Hallo
Evt. gehört es nicht in dieses Forum, aber ich konnte weder auf phpbb.com noch hier ein "passenderes" Forum für mein Problem finden.
In meiner Seite (hockeyarenas.net) habe ich phpBB3 (3.0.5) integriert, damit sich die Leute nicht doppelt registrieren müssen (Forum und eigentliche Seite). Ich habe dazu diverse Hilfen und Anleitungen gefunden und das ganze funktionierte soweit auch problemlos. Vor kurzem häuften sich aber die Probleme (maximum connections erreicht) und ich stellte fest, dass es an der Tabelle phpBB3_sessions liegt. Diese füllt sich enorm schnell, da anscheinend bei jedem Seitenaufruf meiner index.php3 ein neuer Session Eintrag erstellt wird. D.h. wenn ein User z.B. 5 Seiten meiner Page ansurft, dann sind 5 Einträge in phpBB3_sessions, jeweils mit der ULR in dem Feld session_page. Dadurch wurde die Tabelle einfach "zu gross".
Leider bin ich mit dem Zweck/der Funktion der Tabelle nicht ganz vertraut, sodass ich nicht weiss, ob dieses Verhalten normal ist oder ob die Einträge eigentlich wieder gelöscht werden sollten?
Ich habe nun einfach die Tabelle sporadisch geleert, aber auf Dauer ist dies keine Lösung.
Die phpBB3 Seite habe ich über ein Include eingebunden, welches gekürzt so aussieht:
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
//Abfragen von ggf. uebermittelten Parametern
$username = request_var('username', '', true);
$password = request_var('password', '', true);
$autologin = (!empty($_POST['autologin'])) ? true : false;
$viewonline = (!empty($_POST['viewonline'])) ? 0 : 1;
$logout = request_var('mode', '');
//Wenn username und passwort uebergeben worden sind, starte einen Anmeldeversuch
if (isset($username) && isset($password))
{
$auth->login($username, $password, $autologin, $viewonline);
}
//Wenn ueber einen Link der mode=logout lautet, starte das ausloggen des Users
if ($logout == 'logout')
{
$user->session_kill();
}
// zusätzlicher Code (Auswertung, ob User Admin ist etc.)
Evt. gehört es nicht in dieses Forum, aber ich konnte weder auf phpbb.com noch hier ein "passenderes" Forum für mein Problem finden.
In meiner Seite (hockeyarenas.net) habe ich phpBB3 (3.0.5) integriert, damit sich die Leute nicht doppelt registrieren müssen (Forum und eigentliche Seite). Ich habe dazu diverse Hilfen und Anleitungen gefunden und das ganze funktionierte soweit auch problemlos. Vor kurzem häuften sich aber die Probleme (maximum connections erreicht) und ich stellte fest, dass es an der Tabelle phpBB3_sessions liegt. Diese füllt sich enorm schnell, da anscheinend bei jedem Seitenaufruf meiner index.php3 ein neuer Session Eintrag erstellt wird. D.h. wenn ein User z.B. 5 Seiten meiner Page ansurft, dann sind 5 Einträge in phpBB3_sessions, jeweils mit der ULR in dem Feld session_page. Dadurch wurde die Tabelle einfach "zu gross".
Leider bin ich mit dem Zweck/der Funktion der Tabelle nicht ganz vertraut, sodass ich nicht weiss, ob dieses Verhalten normal ist oder ob die Einträge eigentlich wieder gelöscht werden sollten?
Ich habe nun einfach die Tabelle sporadisch geleert, aber auf Dauer ist dies keine Lösung.
Die phpBB3 Seite habe ich über ein Include eingebunden, welches gekürzt so aussieht:
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
//Abfragen von ggf. uebermittelten Parametern
$username = request_var('username', '', true);
$password = request_var('password', '', true);
$autologin = (!empty($_POST['autologin'])) ? true : false;
$viewonline = (!empty($_POST['viewonline'])) ? 0 : 1;
$logout = request_var('mode', '');
//Wenn username und passwort uebergeben worden sind, starte einen Anmeldeversuch
if (isset($username) && isset($password))
{
$auth->login($username, $password, $autologin, $viewonline);
}
//Wenn ueber einen Link der mode=logout lautet, starte das ausloggen des Users
if ($logout == 'logout')
{
$user->session_kill();
}
// zusätzlicher Code (Auswertung, ob User Admin ist etc.)