Kilka dni temu wpadłem na pomysł żeby pobawić się jednym z ogólnodostępnych prostych mechanizmów sesji w PHP wybór padł na sesje dostępną na stronie:
http://artykuly.zyxist.com/czytaj.php/wlasny_mechanizm_sesji
(ten akurat mechanizm sesji bo wcześniej niezbyt wiele zajmowałem się obiektowym PHP - okazji do nauki nigdy zbyt wiele)
W czym problem.
Po skopiowaniu źródeł ustawieniu bazy danych uruchomiłem ową stronę (firefox) działała bez zarzutu logowanie wylogowywanie wszystko w jak najlepszym porządku. Jednak coś mnie tknęło aby uruchomić ową stronę z logowaniem w IE8 i tu zaczęły się schody. Wpisuję login, hasło wciskam przycisk zaloguj, pojawia się komunikat użytkownik zalogowany, klikam link powrót aby zobaczyć upragnioną niedostępną dla niezalogowanych zawartość pliku a tu pojawia się jeszcze raz formularz logowania. Sprawdzałem w zasadzie wszystko zmienne wysyłane odbierane, nagłówki html, ustawienia przeglądarki (cookie, prywatność itd.) wszystko ustawione poprawnie, system aktualizowany na bieżąco, antywirus wszystko działa tak jak powinno. Skrypty sprawdzane krok po kroku. Sytuacja wygląda tak:
1. klikam zaloguj się
2. wprowadzam hasło login do formularza i wysyłam formularz
3. pojawia się komunikat dziękujemy zostałeś zalogowany .... itd
4. klikam powrót
5. następuje przekierowanie (obiekt user zawierający dane użytkownika zalogowanego) wysłany
6. plik index.php sprawdza czy użytkownik jest anonimowy i tu właśnie pojawia się problem bo okazuje się że funkcja isAnonymous zwraca true. Przy czym wstawiając w komentarz tą funkcję (isAnonymous) i wyświetlając tablicę z danymi obiektu user otrzymuje dane użytkownika zalogowanego.
Problem sprawdzałem na kilku komputerach
-jeden z XP i IE8
-drugi czysta instalacja Windows 7
-2 komputery z Windows 2000
-piąty XP i IE8
na pierwszych 4 problem występuje na IE; FF Opera Google Chrome działa poprawnie, na ostatnim co dziwne działa poprawnie na wszystkim łącznie z IE. Wersje i ustawienia przeglądarek na komputerach z XP identyczne, identyczne poprawki zainstalowane.
Może znajdzie się tu ktoś kto miał podobny problem, i zna rozwiązanie lub chociaż przyczynę owego problemu. Źródeł nie wrzucam bo problem występuje w przypadku oryginału i zmienianych przeze mnie źródłach a oryginalne są dostępne w artykule Tomasza Jędrzejewskiego.