Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem arozwiazywalny
Forum PHP.pl > Forum > PHP
tremek
mam problem ze zmienna sesji , otoz jest ona widoczna tylko na stonie na ktorej sie ja zarejestrujem na koljnych juz jej nie widac, moze ktos ma pomysl dlaczego tak sie dzieje bede wdzieczny za kazda pomoc
tremek
widze ze za trudne:) wiec troche pomoge
na 1 stronie mam napisane
<?
session_start();
session_register('zmienna_sesji');
$_SESSION['zmienna_sesji']="witaj swiecie";
?>

na drugiej stronie mam napisane

<?
session_start();
echo $_SESSION['zmienna_sesji'];
?>
i na tej drugisej stronie nic mi sie nie pojawia a na 1 wywala ladny napis witaj swiecie , moze teraz juz troche jasniej napisalem
DeyV
Nie łącz korzystania z session_register i tablicy $_SESSION.
Zobacz, czy zadziała tak:
[php:1:8639ae19d3]<?php
session_start();
$_SESSION['zmienna_sesji']="witaj swiecie";
?>[/php:1:8639ae19d3]


######################
ZNACZNIKI BBCODE!!!!
tremek
niestety nie, teraz nawet na 1 stronie nie wypisyje witaj swiecie, nie wiem co mam zrobic a projekt musze oddac juz na srode sad.gif(
tremek
czy nikt mi nie pomoze, przecierz nie moge zorbic projektu bez sessji
KaMeLeOn
Na poczatek sprawdź czy ID sesji jest takie samo...
[php:1:ebfa66cc4c]<?php
session_start();
echo session_id();
?>[/php:1:ebfa66cc4c]

Może jest ustawiony autostart sesji, może ciastko nie jest ustawiane... ?
tremek
klucze sesji roznia sie na obu stronach
KaMeLeOn
I właśnie w tym jest problem...
Na następnej stronie startuje nowa sesja, w której oczywiście nie będzie zmiennych zdefiniowanych w pierwszej.

Sprawdź php.ini:
- w sekcji SESJE: session.auto_start powinno być standardowo 0
- sprawdz czy ciastko PHPSESSID jest ustawiane

Jeśli to nie pomoże ustalaj PHPSESSID przed wywolaniem sesji
[php:1:068a0ace34]<?php
session_id('ID_SESJI');
session_start();
?>[/php:1:068a0ace34]

BTW. Poczytaj też trochę to http://www.php.net/manual/pl/ref.session.php
tremek
auto strat jest na 0,PHPSESSID tez jest ustawinone a jak sam robie [php:1:f3a37b749d]<?php

session_id('ID_SESJI');
session_start();

?>[/php:1:f3a37b749d]
wywala mi bledy
Kod
Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are only a-z, A-Z and 0-9 in c:usrapachestronkiindex.php on line 3



Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:usrapachestronkiindex.php:3) in c:usrapachestronkiindex.php on line 3



Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:usrapachestronkiindex.php:3) in c:usrapachestronkiindex.php on line 3

ID_SESJI

sam juz nie wiec co nie tak
KaMeLeOn
Napisałem:
Cytat
BTW. Poczytaj też trochę tohttp://www.php.net/manual/pl/ref.session.php

Wszystko jest po polsku, więc to tylko 15 minut czytania... aaevil.gif

To co ci podałem:
[php:1:ad9f01d8ec]<?php
session_id('ID_SESJI');
?>[/php:1:ad9f01d8ec]
To był przykład... Nie mów, że wkleiłeś kod który Ci podałem.
ID sesji może zawierać tylko znaki a-z, A-Z, 0-9 ...
Wygeneruj sobie jakieś ID, powiedzmy funkcją md5() i wywołuj przed session_start()...

Czy sprawdzałeś czy ciastko jest ustawiane?
tremek
jednak czytanie manuala duzo pomaga smile.gif, tak ciastko jest ustawione ale zadzialal mi sposob z z funkcja md5(), wielkie podzienkowania i uklony uznania smile.gif
spenalzo
Aby wygenerować jak najbardziej unikalny id proponuję zastosować poniższy kod:
[php:1:4b28b32505]<?php
srand((double)microtime()*1000000);
session_id(md5(uniqid(rand())));
?>[/php:1:4b28b32505]
tremek
mam juz ostanie pytanie, widze zmienne ale tylko wtedy gdy wygenerowany id sesji jest identyczny na obu stronach,wydaje mi sie to niezbyt bezpieczne czy mam racje?
pozdraiwam
tremek
no i niestety aby jakos to dzialalo musze dla kazdej strony podawac ten sam ciag do funkcji kodujacej md5(), troche to sie mija z celem ale lepiej tak jak wogole by nie bylo
KaMeLeOn
Cytat
Aby wygenerować [...]
[php:1:7e2e4df3e2]<?php
srand((double)microtime()*1000000);
?>[/php:1:7e2e4df3e2]

Od którejś tam wersji php już nie trzeba stosować srand...
Cytat
no i niestety aby jakos to dzialalo musze dla kazdej strony podawac ten sam ciag do funkcji kodujacej md5(), troche to sie mija z celem ale lepiej tak jak wogole by nie bylo

No a jak Ty to sobie wyobrażasz?
Na tym właśnie oparta jest idea sesji. php musi wiedzieć z której sesji ma odtworzyć zmienne...
spenalzo
Cytat
Od którejś tam wersji php już nie trzeba stosować srand...

Widać że jestem zacofany z php :-D. W manualu pisze, że nie trzeba używać od wersji php 4.2.0
KaMeLeOn
Fachowo: generator liczb losowych biggrin.gif
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.