- Wat is het probleem? In de tabel phpbb_sessions_keys staan voor verschillende users meerdere entry's, wat als ik zo de code in sessions.php bekijk, niet helemaal klopt. Kan iemand mij bevestigen dat ik voor iedere user niet meer als 1 entry mag hebben?
Wanneer ontstond het probleem?Toen ik de database bekeek.
Adres van je forum: NVT
Modifications op je forum: Te veel om optenoemen, geen aanpassingen mbt tot sessions.php behalve dan gekoppeld aan andere db, maar die maakt geen wijzigingen aan de keys table.
Huidige stijl: zelfgemaakt
phpBB versie: 2.0.21, maar zwaar aangepast.
Waar is je forum gehost: phpbbhost
Heb je onlangs iets verandert aan je forum? Nee.
Session key probleem.
Forumregels
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.

Session key probleem.
Support Template
Als je in sessions.php kijkt bij het volgende stukje:
Zie je dat ie enkel bijwerkt bij autologin, maar is dit niet het geval dan gooit hij er een nieuwe rij bij.
Het is dus mogelijk om meerdere rijen voor dezelfde gebruikers te krijgen.
Code: Selecteer alles
if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')
{
$sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "
SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time
WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";
}
else
{
$sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login)
VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)";
}
Het is dus mogelijk om meerdere rijen voor dezelfde gebruikers te krijgen.
Je moet niet alleen naar dat stukje kijken, ook naar deze: (Deze wordt aangeroepen als je uitlogt), hier wordt de key dus weer verwijderd, dus zou je zeggen dat het neit moet kunnen.
Code: Selecteer alles
//
// Remove this auto-login entry (if applicable)
//
if ( isset($userdata['session_key']) && $userdata['session_key'] != '' )
{
$autologin_key = md5($userdata['session_key']);
$sql = 'DELETE FROM ' . SESSIONS_KEYS_TABLE . '
WHERE user_id = ' . (int) $user_id . "
AND key_id = '$autologin_key'";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error removing auto-login key', '', __LINE__, __FILE__, $sql);
}
}