Witam.
Mam problem z sesją php, na której opiera się moja witryna.
Podczas logowania do serwisu, zdarza się (losowo), że użytkownik zostaje zalogowany na cudze konto.
Przebieg procesu:
1. Odebranie danych z $_POST-a
2. Porównanie z bazą danych i ewentualne (w przypadku sukcesu), wyciągnięcie klucza dla rekordu usera z b.d.
3. Zapisanie klucza do tablicy $_SESSION.
4. Przerzucenie header()-em na stronę główną.
No i na stronie głównej okazuje się, że zalogowany jestem jako ktoś inny!!
Odrzucam, przez możliwie najróżniejsze próby sprawdzenia, i jako takie zaufanie do mySQL, błędne wyciągnięcie klucza z b.d.
Zakładam, że po przerzuceniu funkcją header(), na stronę główną dostaję cudzy - aktualnie używany - identyfikator sesji.
Uwagi dodatkowe:
1. header ma jako argument Location adres względny, żeby nie mieszać przechodzenia przez domeny.
2. W serwisie panuje ruch około 30 tyś wejść dziennie i problem (prawdopodobnie) nasila się przy wzmożonym ruchu.
3. Mam tylko kilka takich zgłoszeń dziennie, ale jeśli ktoś dostanie się na cudze konto - może bardzo namieszać.
4. Środowisko pracy: php 4.3.9 i mySQL 4.1.10, Linux
pozdrawiam wszystkich