Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie widze sesji zaraz po przeładowaniu strony
yavaho
post
Post #1





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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: ');
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
revyag
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Może dodaj SID'a do linka w headerze .
  1. <?php
  2. header('Location: login.php?'.SID);
  3. ?>
Go to the top of the page
+Quote Post
yavaho
post
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Lars
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 15
Dołączył: 29.04.2005
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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. ?>


(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 22:23