Dziwna zmienna sesyjna
• tech • 201 słów • 1 minuta czytania
Dziś trochę się namęczyłem szukając pewnego błędu w jednym z PHP-owych projektów…
Błąd dość poważny, bo nie można było się zalogować do panelu administracyjnego użytkownika. I jeszcze dosyć nietypowy, bo na localhoście wszystko grało, działało i buczało, a na serwerze docelowym, po zalogowaniu przekierowywało dalej na formularz logowania :/
Analiza kilku plików projektu, jak i poprawianie różnych fragmentów kodu, nie przyniosły wymaganego rezultatu.
Dopiero po czasie “męczarni” doszedłem do tego, że zmienna sesyjna przekazującą wartość id
usera jest pusta. Pomyślałem, jak może być pusta skoro jest poprawnie inicjonowana i przypisywana odpowiednią wartością… a do tego na localu wszystko poprawnie działa.
Wyświetliłem sobie zawartość tablicy $_SESSION
i faktycznie $_SESSION['id']
jest puste:
Array
(
[logged] => yes
[id] =>
[user_login] => user
)
Heh, zmieniłem id
na user_id
i zaczęło działać, więc błąd leży po stronie docelowego serwera. Taki mały szczegół, nigdzie (chyba) nie odnotowany, narobił mi problemów i zjadł trochę czasu na jego zlokalizowanie… zlokalizowanie w prawidłowym, funkcjonalnym kodzie.
Ciekawi mnie to, czemu akurat na tym serwerze wystąpił ten problem. Czy może jest coś źle skonfigurowane? Albo, jeśli to “sprawa bezpieczeństwa” czy nie można było gdzieś podać do wiadomości publicznej, że taka i taka nazwa zmiennej sesyjnej jest zabroniona, albo coś innego…
Komentarze (1)
Marcin, myślę, że to błąd u nich, zauważyleś na wszystkich serwerach robili upgrade baz danych 5, no i tak gonili, że śmiało możesz to puścić w eter… ktoś możliwe, że nie wszyscy, ale pomożesz, ja kiedyś miałem podobną sytuację, ale AMD był szybszy i wysłał meila z poprawką ;) czyli też byłem pierwszy chyba ;)