Ak mam zdrojak:
session_start();
/* nejake dalsie prikazy a tak. */
if($_sesion["login"]=="")
{
sesssion_destroy();
}
/* nieco dalsie */
/* nasleduje telo stranky s odkazmi .... */
toto mam na zaciatku kazdeho skriptu kde kontrolujem uzivaltela (ak je potrebne) po tejto kontrole ak nieje prihlaseny uzivatel session neexistuje, ale za odkazmi ktore smeruju na dalsie stranky sa mi objavi nazov session (aj ked uz neesistuje), v pripade ak ma prehliadac vypnute cookie.
da sa tento neprijemny a neziaduci jav nejak odstranit?
za vyriesenie vopred dakujem :-) adam
máš tam 3 s.
sesssssssssion_destroy() ? :)
1)Moc dobre som nepochopil tvoju otazku ale jedine co sa ti moze pripajat k odkazom je PHPSESSID(ak ma nastaveny takyto nazov v php.ini). Obsah session je mozne z bezpecnostnych dvovodov nastavovat iba interne zo skriptu a nie cez get(premenne v url) alebo post a preto silne pochybujem, ze tam vydis v url nejake nazvy session.
2)ten tvoj priklad si mohol napisat if(!$_SESSION['login']) sesssion_destroy();
Dvojite uvodzovky sa pouzivaju iba vtedy ak obsahuju vo vnutri nejaku premennu, ktoru treba previest na retazec, co len zdrzuje parser :-).
Sorry ze som ti asi nijako nepomohol ale proste som ta nepochopil...
No asi som sa v prispevku nevyjadril moc presne, v zapise sesssion som spravil chchybu s tymi sss (taky preklep v rychlosti), s tym parserom mas takisto pravdu, len som nenasiel na klaves. jednoduche uvozovky.
Inak mam problem s tym že po session_destroy(); zostane názov session v SID, a to znamena ze ak ma prehliadac na klientovej strane vypnute cookies automaticky sa mi doplni za odkazom nazov uz neexistujucej session, ktora platila len na zaciatku scriptu. Chcem len odstranit tento efekt.
este raz priklad:
<?
session_start();
/* nejaky zdrojak na zaklade ktoreho sa rozhodnem zrusit session */
/* potom */
session_destroy();
?>
<a href="stranka.php">odkaz na dalsiu stranku</a>
------------------------------------------------------------------
vysledok v prehliadaci s vypnutym cookie:
<a href="stranka.php?PHPSESSID=32vda151a5v5d46v31354fvd35415355">odkaz na dalsiu stranku</a>
------------------------------------------------------------------
Zaujimave je ze nemam zapis odkazu s SID a predsa mi to hodi za odkaz nazov session.
Podla mna by to malo spravit odkaz z nazvom session iba v pripade ak mam zapis takto: <a hrefé"stranka.php?<? echo SID ?>">odkaz na dalsiu stranku</a>
V tom spociva moj problem. potrebujem sa proste zbavit toho nazvu za odkazom.
Dik za pomoc.
No já teda nevim jestli se neseknu, ale já mám vždycky v odkazu ?$PHPSESSID a ne ?PHPSESSID
A pak u uživatele se vždycky ukáže za otazníkem ono session
Ale to je správně. Co refresh?
Něco podobného je třeba tady:
http://www.wdvl.com/Authoring/Languages/PHP/Maintaining_state/destroying.html
A co to do toho zakomponovat
href="stranka.php?<? echo $PHPSESSID ?>"
?
skus nieco ako unset($_SESSION); ked session_destroy to nerobi. Neviem ci to bude fungovat ale mozno...
session_start();
$_SESSION = array();
session_destroy();
Tohle funguje na 100 procent. Pokud ne, je chyba jeste nekde jinde.
Adam: Tvuj problem chapu. SID totiz PHP vklada do odkazu a formularu automaticky, nejsou-li k dispozici cookies. Bohuzel je to veci nastaveni serveru a to neovlivnis.
.htaccess:
php_flag session.use_trans_sid off
Dakujem za rady, pomohli. Funguje ak vyprazdnim pole session a potom session_destroy();
Moc ste mi pomohli, konecne sa mozem pohnut dalej.