Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]IE 7 - problem z obsługą sesji
Forum PHP.pl > Forum > Przedszkole
modic
Problem wystepuje w przeglądarce IE i wygląda mniej wiecej tak:

na stonie jest jednosześnie formulaż logowania i treść strony, w skrócie wygląda to mniej wiecej tak:
Kod
<?php
if (!isset($_SESSION['login'])) {
echo "nie masz uprawnień do przeglądania strony";
}
else
echo "to jest treść strony";
?>


Jest też przycisk "wyloguj" po jego naciśnieciu przechodzimy do strony na której jest wyloguj.php, gdzie znajduje się skrypt (tu też skrócony):
Kod
<?php
session_start();
session_destroy();
echo "pokaż formularz logowania";
?>


a wiec zmienna $_SESSION['login'] przetaje istnieć i nie bedzie możliwe zobaczenie zawartości strony, ale okazuje sie że w IE 7 jak klikam po wylogowaniu przysisk WSTECZ to pokazuje mi pusta strone z komunikatem "Strona sieci web wygała", a po kliknieciu "Odświerz" i "Ponów próbę" znowu można zobaczyś zawartość strony, choć nie powinno do tego dochodzić.

Tak wiec pytanie brzmi, jak temu zaradzić, prosiłbym też o wyrozumialość, php zajmuje sie niecały miesiąć, z góry też dziekuje za wszelką pomoc.
nexis
Po pierwsze proponuje poniższe zmiany:

index.php
  1. <?php
  2.  
  3.  
  4. if (!isset($_SESSION['login'])) {
  5.  exit('Nie masz uprawnień do przeglądania strony!');
  6. }
  7.  
  8. echo 'To jest treść strony!';
  9.  
  10. ?>


Funkcja exit" title="Zobacz w manualu PHP" target="_manual na pewno zakończy działanie skryptu i nie pokaże treści poniżej.

wyloguj.php
  1. <?php
  2.  
  3.  
  4. unset($_SESSION['login']);
  5.  
  6. ?>


Nie musisz niszczyć całej sesji aby wylogować użytkownika - wystarczy jak usuniesz informację o tym, że jest zalogowany.

A poza tym przeanalizuj swój problem: Wstecz -> Odśwież -> Ponów próbę!

Przecież nie robisz nic innego jak logujesz się na nowo, więc czemu treść dla zalogowanych miałaby nie być widoczna?
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.