Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP].htaccess + obsługa własnych błędów + sesja
Forum PHP.pl > Forum > Przedszkole
siemieng
Mam taki problem z sesjami i obsługą własnych błędów przy pomocy .htaccess:

plik strony
  1. session_start(); header('P3P: CP="CAO PSA OUR"');
  2. if(!isset($_SESSION['isValid'])) $_SESSION['isValid'] = true;


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):
  1. session_start(); header('P3P: CP="CAO PSA OUR"');
  2.  
  3. //zmienna flagi ważności sesji
  4. $_SESSION['isValid'] = false;
  5.  
  6. echo "<meta http-equiv='refresh' content='0; url=http://strona.pl/'>";


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?questionmark.gif
erix
Spróbuj dorzucić do przekierowania wartość stałej SID.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.