Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]SESSION Jak to działa?
-mag32-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. echo ('START SESJI: ');

nie możesz nic wysyłać przed rozpoczęciem sesji (IMG:style_emoticons/default/rolleyes.gif)

EDIT:
poza tym, echo nie wymaga nawiasów (IMG:style_emoticons/default/smile.gif)

Ten post edytował Pawel_W 28.07.2010, 11:13:39
Go to the top of the page
+Quote Post
dg2001
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 12
Dołączył: 9.01.2008
Skąd: Olkusz

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


  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 (IMG:style_emoticons/default/worriedsmiley.gif)

Ten post edytował dg2001 28.07.2010, 11:55:48
Go to the top of the page
+Quote Post
-mag32-
post
Post #4





Goście







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





Grupa: Zarejestrowani
Postów: 71
Pomógł: 12
Dołączył: 9.01.2008
Skąd: Olkusz

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


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





Goście







Działa.
Serdeczne dzięki.
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: 10.10.2025 - 19:10