Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]SESSION Jak to działa?
Forum PHP.pl > Forum > Przedszkole
mag32
w pliku index.php do którego odwołują się jak do tej pory wszystkie funkcje następuje zainicjowanie Sesji.


następnie ustalenie numeru sesji.
  1. $_SESSION['ident']=$_SERVER['REMOTE_ADDR'].DATE('Y. t');


oraz ustalenie czy user jest zalogowany.
  1. $_SESSION['logon']=0;


Gdy user loguje się to po prawidłowym logowaniu:
  1. $_SESSION['logon']=1;

Czyli zmieniam tą wartość na 1.

I teraz przy ponownym wywołaniu index.php skrypt powinien już widzieć wartość 1.

Ale tak nie jest.
Pierwotnie zastosowałem include_once dla pliku z procedurami inicjowania sesji ale i tak plik był wywoływany każdorazowo.
Więc wsadziłem te wywołania w if warunkując w ten sposób:
  1. echo ('START SESJI: ');
  2. if(!isSet($_SESSION))
  3. {
  4. $_SESSION['ident']=$_SERVER['REMOTE_ADDR'].DATE('Y. t');
  5. $_SESSION['logon']=0;
  6. echo ('restart sesji if session not set: ');
  7. echo ($_SESSION['IDENT']);
  8. }
  9. else
  10. {
  11. echo ('sesja utrzymana nr: '.$_SESSION['IDENT']);
  12. }

też nie działa, czyli za każdym razem razem wchodzi i inicjuje sesję od początku.
Zmieniłem też warunek if na
  1. if(!isSet($_SESSION['logon']))

oraz
  1. if($_SESSION['logon']==0)

ale i tak jest ciągle to samo.
Czyli tak, jak by sesja nie była nigdy utrzymywana i za każdym razem inicjowana jest ponownie.
Podpowiedzcie co sprawdzić i gdzie mogę popełniać błąd.
Pytanie, czy Ja dobrze rozumiem działanie tej funkcji?

Wszystko jest robione na WampSerwer 2.0
Pawel_W
  1. echo ('START SESJI: ');

nie możesz nic wysyłać przed rozpoczęciem sesji rolleyes.gif

EDIT:
poza tym, echo nie wymaga nawiasów smile.gif
dg2001
  1. echo 'START SESJI: ';
  2. if(!isset($_SESSION['ident'])){
  3. $_SESSION['ident']=$_SERVER['REMOTE_ADDR'].DATE('Y. t');
  4. $_SESSION['logon']=0;
  5. echo 'restart sesji if session not set: ';
  6. echo $_SESSION['ident'];
  7. } else {
  8. echo 'sesja utrzymana nr: '.$_SESSION['IDENT'];
  9. }


może tak worriedsmiley.gif
mag32
OK, ale czy mogę inicjować przy każdym wywołaniu index.php ?

Czy nie spowoduje to zamazania tablicy zmiennych sesji?
No dobra, zaraz sprawdzę.

echo było tam tylko po to by kontrolować co robi skrypt.
dg2001
czy mogę inicjować przy każdym wywołaniu index.php ?
TAK

Czy nie spowoduje to zamazania tablicy zmiennych sesji?
NIE, gdyż sprawdza czy istnieje $_SESSION['ident'], jak nie to go tworzy, a jak jest to pomija.
mag32
Działa.
Serdeczne dzięki.
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.