tremek
7.06.2003, 18:24:08
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
7.06.2003, 19:11:27
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
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
7.06.2003, 21:55:58
niestety nie, teraz nawet na 1 stronie nie wypisyje witaj swiecie, nie wiem co mam zrobic a projekt musze oddac juz na srode

(
tremek
8.06.2003, 09:51:39
czy nikt mi nie pomoze, przecierz nie moge zorbic projektu bez sessji
KaMeLeOn
8.06.2003, 10:34:21
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
8.06.2003, 10:38:37
klucze sesji roznia sie na obu stronach
KaMeLeOn
8.06.2003, 10:46:53
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
8.06.2003, 11:03:57
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
8.06.2003, 11:11:32
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...
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
8.06.2003, 11:14:31
jednak czytanie manuala duzo pomaga

, tak ciastko jest ustawione ale zadzialal mi sposob z z funkcja md5(), wielkie podzienkowania i uklony uznania
spenalzo
8.06.2003, 21:11:49
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
8.06.2003, 21:59:30
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
8.06.2003, 22:28:29
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
8.06.2003, 22:58:05
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
8.06.2003, 23:54:54
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
9.06.2003, 00:09:22
Fachowo:
generator liczb losowych
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.