Autor Zpráva
srigi
Profil
Je mozne nejako zistit (premenna prostredia, funkcia) ze po stusteni session_start(), generoval SESSION ID server, alebo bolo prejate z cookie (url).

Momentalne pouzivam tuto konstrukciu:


if (isset($_REQUEST[session_name()]) && $_REQUEST[session_name()] == session_id()) {
...
...
...
}


No ale je to 100% spolahlive? A naviac sa mi nepaci to AND v podmienke ked chcem pouzit inverznu funkciu:
if (!isset ...


BTW pouziva PHP zrychlene vyhodnotenie vyrazov ako C? Cize ak uz prva cast podmienky if (isset($_REQUEST[blabla]) && bla bla) je false, vyhodnotenie konci. Je to tak?
THX.
MzM
Profil *
PHP používá zkráceného vyhodnocování.
SESSION_ID se může předávat buď jako cookie, nebo přes GET nebo POST, test na $_REQUEST[session_name()], te tedy podle mého názoru spolehlivý.
Tomu, že se ti nelíbí AND, moc nerozumím. Pokud to osvětlíš, zkusím odpovědět i na to. :-)
MzM
Profil *
..ještě mě napadlo. Teď nevím jestli v předchozím příspěvku mluvím pravdu. :-( Proč zjišťovat takovouto věc?
Pokud chci zjistit, jestli existuje session, tak by se měla zjišťovat před tím, než se zavolá session_start(). session_name() vrací akorát hodnotu proměnné prostředí, takže nepotřebuje být nějak inicializována tím session_start(). Nehledě na to, že si můžeš session pojmenovat podle sebe. Taky bych se podíval na fci session_is_registered() do manuálu.
Víc nevím.
tiso
Profil
Inverzná funkcia k (A AND B) je (!A OR !B), alebo Ti stačí obyčajné else po skončení toho if-u:
if(A AND B){...}

else{...}

Základy logiky pri programovaní treba ovládať...
Leo
Profil
No pokud znate session name, tak se muzete proste kouknout, jestli mate nastavenou patricnou cookie (pole $_COOKIE), Leo
Leo
Profil
Mimochodem cpat session id do URL neni moc moudre... Leo
Toto téma je uzamčeno. Odpověď nelze zaslat.

0