Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie widze sesji zaraz po przeładowaniu strony
Forum PHP.pl > Forum > PHP
yavaho
Na jednym serwerze nie widze zmiennej sesyjnej zaraz po uzyciu instrukcji header('Location: ').
Tworze zmienna sesyjna, nadaje jej jakas wartosc i od razu przeladowuje strone poleceniem header. Po przeladowaniu strony zmienna sesyjna nie istnieje. Dopiero gdy normalnie przejde do innej strony (naciskajac jakiegos linka) to wtedy dopiero widoczna jest zmienna sesyjna.
Ponizej mam przykład. Zaraz po zalogowaniu i sprawdzeniu hasla przez skrypt nastepuje przeladowanie strony i powinien pojawic sie napis "Zalogowany". A pojawia sie dopiero przy nastepnym wejsciu na ta strone.
  1. <?php
  2.  
  3. if($REQUEST_METHOD == 'POST') {
  4. if(($log==$_POST['login'])and($pass==$_POST['haslo'])){
  5. $_SESSION['admin'] = '1';
  6. header('Location: login.php');
  7. }else{
  8. echo('niepoprawne dane');
  9. }
  10. }
  11.  
  12. if(isset($_SESSION['admin'])) {
  13. echo('Zalogowany');
  14. }
  15.  
  16. ?>
A przy okazji to jak mozna dodać: " echo SID " do linku ktory jest umieszczony w header('Location: ');
revyag
Może dodaj SID'a do linka w headerze .
  1. <?php
  2. header('Location: login.php?'.SID);
  3. ?>
yavaho
Dodanie SID do adresu nic nie zmienilo. Ale po dodaniu SID nawet nie pojawia sie zmienna sesyjna w pasku adresu.

Podczas usuwania zmiennej sesyjnej i przeladowaniu strony tak jak ponizej to na nastepnej stronie w dalszym ciagu widoczna jest ta zmienna do momentu odswiezenia strony po przez normalne przejscie (klikniecie w linka) na inna strone.
  1. <?php
  2. unset($_SESSION['admin']);
  3. header('Location: index.php');
  4. ?>
Lars
Cytat(revyag @ 2005-10-15 08:11:04)
Może dodaj SID'a do linka w headerze .
  1. <?php
  2. header('Location: login.php?'.SID);
  3. ?>

a nie zamiast SID:

  1. <?php
  2. $adres='login.php?'.SESSION_NAME().'='.SESSION_ID();
  3. header("Location: $adres");
  4. ?>


questionmark.gif
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.