plik strony
plik .htaccess:
Options -Indexes
<Files ~ "\.(phpm|phtml|ini|inc|xml)$">
order allow,deny
deny from all
</Files>
ErrorDocument 400 http://strona.pl/errors/400.php
ErrorDocument 403 http://strona.pl/errors/403.php
ErrorDocument 404 http://strona.pl/errors/404.php
plik strony błędu (np: 404.php):
//zmienna flagi ważności sesji $_SESSION['isValid'] = false;
Całość w założeniu powinna działać:
1. Wczytanie pliku strony, sprawdzenie istnienia zmiennej flagi ważności sesji,
2. W przypadku błędu, powinno nastąpić przekierowanie do strony błędu, nadanie zmiennej flagi ważności sesji wartości false i przekierowanie do strony głównej
Problem polega na tym, że zainicjowanie danych sesji w pliku strony błędu powoduje nieprawidłowe działanie całości. Zwykłe otwarcie strony (bez żadnych błędów) i jej odświeżenie, bądź przejście na inną podstronę powoduje ponowne utworzenie danych sesji i usunięcie danych z otwarcia strony. Problem jest też inny w różnych przeglądarkach: Opera cały czas jest wszystko dobrze, Firefox, IE, Safari problem dotyczy pierwszego odświeżenia bądź przejścia na pierwszą podstronę, później dane sesji się zachowują, natomiast google chrome każde odświeżenie, czy przejście na podstronę wznawia ponownie sesje. U mnie lokalnie wszystko działa, problem dotyczy konta hostingowego.
Usunięcie session_start() z pliku strony błędu usuwa całkowicie problem. Lecz zależy mi na użyciu zmiennych sesyjnych w tych plikach...
Proszę o pomoc w zrozumieniu tego, może nie da się tak wykorzystać plików stron błędów, czy może coś nie tak a ustawieniach serwera?
