Switch to full style
Forum dyskusyjne poświęcone zagadnieniom związanym z tworzeniem serwisów z wykorzystaniem zaawansowanych technologii takich jak PHP, Perl, mySQL, ASP, CGI, XML, itp.
Odpowiedz

Kontrola sesji

30 października 2005, o 10:47

Witajcie!
Mam ogromny prolem z mechanizmem kontroli sesji na moim kompie. Sesje poprostu nie działają i już nie wiem co robić. Nawet najprostsza operacja jak ustawienie zmiennej sesji w jednym skrypcie i odczytanie jej wartości w drugim jest niemożliwa. Próbowałem na przykładzie:
----------------------------------------------------------
plik1.php
----------------------------------------------------------
<?php
session_start();
$HTTP_SESSION_VARS['imie'] = 'ola';
?>
<a href="plik2.php">plik2</a>
----------------------------------------------------------


----------------------------------------------------------
plik2.php
----------------------------------------------------------
<?php
session_start();
$a = $HTTP_SESSION_VARS['imie'];
echo 'Oto imię: '.$a;
?>
----------------------------------------------------------

Powyższy kod nie zadziała na moim kompie chociaż to model książkowy. Już nie wiem co mam robić. Mam do skończenia projekt a bez sesji nie ruszę z miejsca. Pracuję na wersji php 4.3 jak pokazuje mój phpinfo(). Proszę pomóżcie. Z góry serdecznie dziękuję i pozdrawiam.

Kontrola sesji

30 października 2005, o 12:27

widzisz, pracujesz na sesjach a nawet nie przeczytales jak dzialaja, a zwlaszcza jak dziala session_start() ; oraz session_id() ;
jesli wywolujesz ta funkcje bez opcji, to tworzona jest nowa sesja, jesli wywolujesz ta funkcje z numerem, to najpierw sprawdzane jest czy na serwerze jest juz sesja o podanym numerze, a jesli tak, to nastepuje jej aktywacja.
numer sesji pobierzesz np. poprzez session_id(), albo zachowujesz go w cookie, albo przekazujesz jako parametr poprzez link (do plik2.php dodajesz cos w rodzaju ?sesja=$sesja), w pliku plik2.php odczytujesz ten numer, uruchamiasz sesje o tym numerze i imie wyswietla sie tak jak trzeba
Ostatnio edytowano 30 października 2005, o 20:05 przez januzi, łącznie edytowano 1 raz

30 października 2005, o 18:02

Czy mógłbyś troszkę jaśniej. W jaki sposób dodać do plik2.php cos w rodzaju
?sesja=$sesja), co oznacza ten zapis : ?sesja=$sesja. Troszkę poszperałem i poprawiłem swój błąd. Trzeba było ustawić ścieżkę cookie.session_path na inną niż standardowe /tmp w php.ini. Jednak twoja wypowiedź rzuca nowe światło na zaistniały problem. Czy mógłbyś wyjaśnić sprawę troszkę jaśniej. Z góry dziękuję. Pozdrawiam

30 października 2005, o 18:14

echo "<a href=plik2.php?sesja=$sesja>strona 2</a>" ;
potem na stronie plik2.php robisz $sesja = $_GET['sesja'] ;
session_id( $sesja ) ;
session_start() ;

zobacz jeszcze jakie masz ustawienia sesji, czasami standardowo jest zrobione tak, ze phpsessid przekazuje sie samo w adresie, albo wlaczone jest tak, ze cookie sie zapisuje z numerem sesji
Ostatnio edytowano 30 października 2005, o 20:08 przez januzi, łącznie edytowano 1 raz

30 października 2005, o 19:20

30 października 2005, o 20:12

Odpowiedz