zajimavost se sessions

11 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. mam tento kod: (jenom jsem si chtel ujasnit co dokazou sessions :]) <? session_start(); if(IsSet($lognise)): //log $jmeno="PIF"; $_SESSION["username"] = $jmeno; endif; if(IsSet($odlognise)): //logout session_unset($_SESSION["username"]); if(!$_SESSION["username"]) echo "ODHLASENI USPESNE"; endif; if($_SESSION["username"]): //je log echo 'Jste v systemu pane'; echo $username; else: //neni log echo "nejste v systemu :]"; endif; ?> mno a zajimavost je ta, ze kdyz date treba do url ?lognise=1 tak vam to hnedka nenapise $username, ale vypise vam to hned po reloadu... jak to ? a jeste by me zajimalo, jaka je bezpecnost takovehoto reseni pri autorizaci diky vsem za odpovedi
  2. v akci je to na http://pif.wz.cz/sessions.php
  3. tak 2 poznamky: 1) session_unset neni funkce na ruseni session promenny, k tomu slouzi session_unregister. (session_unset je bez parametru a rusi vsechny session_promenny). v tvem pripade bych ale pouzil spis session_destroy, ktere zrusi celou session.. 2)registrovani session promennych jako globalnich probiha vzdy pri session_start, takze kdyz do $_SESSION pridas promennou tak se namapuje jako globalni az po reloadu. napsal bych to asi takle: ------------------------------ session_start(); session_register('username'); if(IsSet($lognise)): //log $jmeno="PIF"; $username = $jmeno; endif; if(IsSet($odlognise)): //logout session_unregister("username"); if(!$username) echo "ODHLASENI USPESNE"; endif; if($username): //je log echo 'Jste v systemu pane'; echo $username; else: //neni log echo "nejste v systemu :]"; endif;
  4. tady zase nastava problem s logoutem.... protoze hned po logoutu se totiz jeste porad vypisuje ze jsi v systemu, a teprve az po reloadu ses defacto odhlasenej prekvapuje me, ze to nereaguje na podstrceni promeny username=aaaaaa napr :] zajimavy dik
  5. no tak bud za session_unregister dej jeste unset($username) nebo to kontroluj podle $_SESSION[..] SESSION ma v mapovani globalnich promennych vetsi prioritu nez GET/POST/COOKIE, coz je zaroven docela efektni bezpecnostni opatreni.. nesmis ale zapomenout tu promennou ve vsech skriptech registrovat (hlavne v tech kde uz predpokladas ze v session je) >>tohle je dost casta a dost blba chyba pri autorizaci -- session_start(); if($username...) -- kdyz je username v session tak nic podstrcit nejde, nicmene kdyz na tu stranku jdes primo tak bez problemu.. na tohle je mozna lepsi pouzit $_SESSION..
  6. kk chapu :] dik, proto se vyplati pro jistotu dat do kazdyho dokumentu session_start(), protoze includuju je do index.php, a tudiz kdyz nekdo zavola samotnej soubor klido by to napadl, ale to je jasny dik
  7. Tag k tem samotnejm souborum zakaz pristup pres HTTP (.htaccess) a si f pohode, nemusis se bat....
  8. ne o to mi neslo.... jenom aby si nikdo nemohl brouzdat myma strankama bez pouziti index.php, dejme tomu ze bych mel treba soubor nejaky_news.php kde by se provadela editace, tudiz by byl pristupny pro kazdyho :] a s tim uz nebude... do kazdyho souboru dam treba nejakou funkci authorize() a ta uz si s tim poradi :P
  9. Mno jasne, ale gdyz includujes, nepotrebujes k souboru pristup pres HTTP, to znamena, ze mas adresar include, ve kterym mas soubory, ktery vyhradne includjes a nemas k nim pristup pres HTTP -> ze k nim nemuze nigdo, muzou bejt jenom includovany...
  10. to je fajn :]
  11. to jo :-)

← Zpět na všechna témata