Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy to dobra droga ??
Forum PHP.pl > Forum > PHP
boya
Ucze sie sesji i już mam za sobą pewnie postępy:

plik index.php tworzymy sesje o unikalnym id po czym przechodzimy do nastepnych www przekazujac identyfikator sesji

[php:1:ac3bf13489]
<?php
session_start();
if (!IsSet($nr))
$nr = session_id("md5(uniqid(rand()));");
?>
Identyfikator sesji to :<? echo $nr; ?><BR>
<a href="next.php?SID=<?php echo ("$nr"); ?>">
przejdz dalej</a>
[/php:1:ac3bf13489]

plik next.php sprawdzamy czy juz sesja istnieje i przechodzimy do nastepnych www przekazujac identyfikator sesji

[php:1:ac3bf13489]<?php
if (!IsSet($SID))
$SID = generate_sesssion_id();
?>
Identyfikator sesji to :<b><? echo $SID; ?></b><BR>
<p><a href="next2.php?SID=<?php echo ("$SID");?>">DALEJ</a></p>[/php:1:ac3bf13489]

plik next2.php sprawdzamy czy istnieje sesja i przechodzimy do nastepnych www przekazujac identyfikator sesji

[php:1:ac3bf13489]<?php
if (!IsSet($SID))
$SID = generate_sesssion_id();
?>
Identyfikator sesji to :<b><? echo $SID; ?></b><BR>
<p><a href="usun.php?SID=<?php echo ("$SID");?>">Usuń sesje</a></p>
?>[/php:1:ac3bf13489]

plik usun.php przechodzimy do nastepnej stroy ktora sprawdza czy sesja istnieje i ja usuwa

[php:1:ac3bf13489]<?php
if (!IsSet($SID))
$SID = generate_sesssion_id();
session_destroy();
?>[/php:1:ac3bf13489]

moje pytanie czy dobrze to rozpislaem :/ bo zielony jestem a wszytko dziala ok oprocz tego ze kiedy wpisuje adres w przegladarke gdzie jest www to wyskakuje mi przy odwarciu w linku do nastepnej strony takie cos http://213.25.218.110/next.php?SID=c6fc61a334488425ae41cbfe931d390b&PHPSESSID=md5(uniqid(rand())); a ja nie chce tej koncowki !!! wiec robie odswierz i juz jest bez questionmark.gif dlaczego to nie wiem

pomocy i prosze o opinie

calosc jest na stronie http://213.25.218.110
DeyV
a mnie tylko zastanawia jedno. Czemu chcesz samodzielnie przenosić identyfikator sesji? Aż tak się boisz, że php zrobi to błędnie?
Nie wiem czemu, tym bardziej, ze w aktualnych wersjach php, przy poprawnie ustawionym przenoszeniu identyfikatora sesji (czyli najpierw w adresie, a jak działa cookiz, to w ciastku) działa bardzo dobrze - i nigdy mnie nie zawiodło.
No i oczyeiście znacznie ułatwia sprawę, bo sprowadza sie to do tego, by na początku skryptu odpalić session_start();
a dalej zawsze korzystać z $_SESSION[];
spenalzo
Poza tym scanner juz Ci napisał że funkcja generate_session_id() nie istnieje!
Możesz ją sam utworzyć, w taki sposób (cytat z "PHP4. Aplikacje"):
[php:1:15f09499c1]<?php
function generate_session_id()
{
srand((double) microtime()*1000000);
return(md5(uniqid(rand())));
}
?>[/php:1:15f09499c1]

I poczytaj manual, tam masz wyjaśnione.
Seth
Nie potrzebnie sam generujesz id. To wszystko robi za Ciebie php.
Proponuje poczytac o sesjach w manualu http://pl2.php.net/session + komentarze pod nim.
Oraz to: http://webcity.pl/artykuly.php/t/3


P.S.
Koncowke masz taka bo dales:
[php:1:2f1fd1e870]$nr = session_id("md5(uniqid(rand()));"); [/php:1:2f1fd1e870]
a powinno byc bez cudzyslowia:
[php:1:2f1fd1e870]$nr = session_id(md5(uniqid(rand()))); [/php:1:2f1fd1e870]

P.S. 2
Prosze o nie tworzenie nowych topikow o tym samym problemie... mogles kontynuowac wszystkie 3 tematy w jednym !
boya
Seth

zrobilem tak jak mowiles i teraz pojawia sie takie cos w linku a mi sie wydaje ze troche za dlugie

http://213.25.218.110/next.php?SID=bc45823...92766c1e0db47db
Seth
Zle do tego podszedles. Tamto podalem Ci tylko zebys zobaczyl dlaczego Ci wyswietla funkcje php.
Mysle, ze po lekturze tego co podalem Ci wyzej w linku - artykulu na temat sesji na webicty sam dojdziesz do tego winksmiley.jpg
Dodatkowo przeczytaj sobie to: http://forum.php.pl/viewtopic.php?p=32420#32420
boya
Juz czaje biggrin.gif jeszcze jedno male pytanko jak zrobic zeby sesja sie usunela po zamknieciu przegladarki questionmark.gif i sprawdzi na jakis tam pozniejszych strnach czy sesja xxx zostala juz stworzona a jak nie to ja stworzyc...
DeyV
domyslnie zawsze sie kończy....
spenalzo
Z tego coo wiem to sesja sama sie usuwa po zamknięciu przeglądarki.
FiDO
DeyV o sekundy szybszy winksmiley.jpg
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.