Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znikajaca sesja
Forum PHP.pl > Forum > PHP
a600user
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
webdice
Proszę o poprawienie bbcode.
Lejto
co masz w Pliku 2? zamiast tych kropeczek pokaż cały i session_start(); wywołuj zawsze na początku skryptu
a600user
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.
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.