Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Znikajaca sesja, czyli znikajace $_SESSION[]
a600user
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.04.2007

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


Witam,

Pewnie dla was to flaki z olejem poruszane n-ty raz, ale ja nie moge sie przez to przebic.
Oto mam sobie stronke, w niej proste 3 pliki:
1) startowa, pokazuje status (zalogowany/niezalogowany), ma linka do LOGUJ
2) stronka LOGUJ z linkiem powrotu do 1
3) stronka kolejna, ktora pokazuje przycisk aktywny (gdy uzytkownik zalogowany) lub nieaktywny (gdy uzytkownik niezalogowany).

I teraz tak. Po zalogowaniu i powrocie do strony 1 pokazuje sie status zalogowany, natomiast gdy:
* odswieze strone w przegladarce lub
* klikne na linka do strony 3
wowczas wyskakuje znowu status niezalogowany.

Co dziwne, sledzilem plik sesji w /var/lib/php (ktorego uprawnienia to 41733) i wyszlo, ze plik poprawnie powstaje po zatwierdzeniu usera na stronce 2, natomiast po kliknieciu linka na tej stronie i przeniesieniu sie do strony 1 - ginie calkowicie, ale zeby bylo smieszniej - nastepnie po kliknieciu na linka do strony 3 powstaje znowu, ma jednak dlugosc 0 bajtow.

Apache na localu. Kody mojej strony:

Plik 1 - index.php
  1. <?php
  2. if (isset($_SESSION['uzytkownik'])) {
  3.  echo ('Welcome '.$_SESSION['uzytkownik']);
  4. }
  5. else {
  6.  echo ('Not logged');
  7. }
  8. ?>


Plik 2
  1. <?php
  2. ...
  3. if ($login_paswd=='' || $login_paswd=='0') {
  4.  echo ('Nie ma takiego loginu w bazie. <A HREF="register.php?login='.$login.'">Kliknij tu aby sie zarejestrowac</A>');
  5. } else {
  6.  $_SESSION['uzytkownik'] = $login_name;
  7.  if (($login==$login_name) && ($pass==$login_paswd) && ($login=='login@admina.com')) {
  8. echo ('<A HREF="index_adm.php">Panel administracyjny</A><BR>');
  9.  }
  10.  echo ('<A HREF="index.php">Powrót</A>');
  11. }
  12. ...
  13. ?>


Plik 3 - index2.php
  1. <?php
  2. if (!isset($_SESSION['uzytkownik'])) {
  3.  echo ('<IMG SRC="b_buy_in.png" CLASS="lapka" BORDER=0>');
  4. }
  5. else {
  6.  echo ('<A HREF="order.php?model='.$mod.'&upgrade='.$upgrade.'<" onmouseover='.'''.'rollover.src="buy2.png"'.'''.' onmouseout='.'''.'rollover.src="buy.png"'.'''.' TARGET="_parent"><IMG SRC="buy.png" CLASS="lapka" name="rollover" BORDER="0"></A>');
  7. }
  8. ?>


Jesli to cos rzutuje, to moje linki do kolejnych podstron uzywaja lancucha zapytania URL. A w kodzie stron odwolan do PHP jest po klilka(nascie) razy. Session_start() wywoluje tylko tam, gdzie potrzeba mi odwolania do zmiennej sesji.

Co robie nie tak ?
Dziekuje

Ten post edytował a600user 4.05.2008, 22:09:46
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Proszę o poprawienie bbcode.
Go to the top of the page
+Quote Post
Lejto
post
Post #3





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


co masz w Pliku 2? zamiast tych kropeczek pokaż cały i session_start(); wywołuj zawsze na początku skryptu


--------------------
Go to the top of the page
+Quote Post
a600user
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 14.04.2007

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


Cytat(Lejto @ 4.05.2008, 17:22:28 ) *
co masz w Pliku 2? zamiast tych kropeczek pokaż cały i session_start(); wywołuj zawsze na początku skryptu


Ufff, 1100 linii kodu byloby nieco klopotliwe ;-)
Ale chyba odkrylem przyczyne, byl to kawalek zagniezdzonego kodu php bez if-a, ktory wywalal cala sesje... (w index.php). Sprawdze i jak to nie to, bede dalej sie rzucal ;-)
Dzieki, w kazdym razie ta sugestia pchnela mnie to skontrolowania kodu, ktory skopiowalem z plikow.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 20:57