Session key probleem.

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Session key probleem.

Bericht door Paul » 22 sep 2006, 18:56

Support Template
  • 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.
Overige opmerkingen:Geen.

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 22 sep 2006, 21:17

Als je in sessions.php kijkt bij het volgende stukje:

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)";
			}
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.

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 22 sep 2006, 21:34

Je moet niet alleen naar dat stukje kijken, ook naar deze:

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);
		}
	}
(Deze wordt aangeroepen als je uitlogt), hier wordt de key dus weer verwijderd, dus zou je zeggen dat het neit moet kunnen.

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 22 sep 2006, 22:00

Het $autlogin_key is toch steeds verschillend?

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 22 sep 2006, 22:07

Nee. Die komt direct uit de users table.

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 22 sep 2006, 22:22

Ik zie sessions_key nergens terug in de users_table. :-) Dus ik vermoed dat die gewoon verschillend is. Heb het nog even gecheckt in een database en meerdere gebruikers is gewoon normaal.

Hoe en waarom kan ik nu niet uitzoeken, zal waarschijnlijk met verschillende PC's te maken hebben.

Gesloten