Autor Zpráva
kachnak
Profil
chcel by som sa naucit session prihlasenie.. uz mi to ako tak funguje.. ale mam problem s odhlasenim... ak uzivatel klikne na tlacitko odhlasit <a href=a.php?Q=logout> tak v podmienke pre Q==logout dam sesion destroy... lenze ak zavrem okno a spustim tu istu stranku znovu.. uzivatel je stale prihlaseny.... ako mam spravit aby sa sesion zrusila ak uzivatel zavre okno?.. alebo ako sa to robi? cez nejaky cas? dakujem
AM_
Profil
kachnak
založit si vlastní téma neškodí.
Tohle se ošetřuje dost špatně, protože na serveru nijak nepoznáš, že uživatel zavřel prohlížeč. Proto se také uživatelé učí, že se musí odhlásit příslušným tlačítkem, a ne pouze prohlížeč zavřít. PHPSESSID cookie má defaultně životnost 0 a tedy se maže při ukončení prohlížeče, ale není to pravidlem. A všimni si, že takhle funguje spousta stránek - i po zavření a otevření prohlížeče zůstaneš přihlášen.
kachnak
Profil
no nechcel som robit zbytocnu temu.... asi to spravim nejak cez cas... ze ulozim do databazy k nicku cas posledneho spustenia stranky... a ak sa bude necinny 10 minut cize stranka sa spusti az o 10 minut znova tak ho odhlasi..
AM_
Profil
sessions mají tuhle funkci v sobě, výchozí je 24 minut, v php.ini to jde změnit.
K novému tématu: takhle si každý nejdřív přečte první tři příspěvky a pak zjistí, že se tu vlastně už řeší něco jiného. Nové téma nikomu nepřekáží, až se vyřeší, tak pěkně odjede mezi neaktivní.
Alphard
Profil
Pro smazání session může použít příklad z manuálu. Měl by fungovat.
Bez komentářů:
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();


Když uživatel zavře prohlížeč, měly by se session smazat.

AM_:
Kdybych si byl jist přesunem do nového threadru, tak už to tam je. Ale mám strach, že to tady smažu. :-(
AM_
Profil
Alphard
Jen pro upřesnění, session se nemaže, pouze by se měla smazat PHPSESSID cookie a tím ztratit se session spojení. Vzhledem k tomu, že se to děje na straně prohlížeče, to nelze 100% zajistit.
kachnak
Profil
noo nejak mi ten prikaz s tym COOKIE nefunguje.. vlastne ani neviem kam to mam zapisat...
tu je moja skusobna stranka: http://kachnak.esdesign.sk/session/a.php
meno:a heslo:a
ked sa prihlasite a klikate refresh, tak session existuje.... ked sa odhlasite sesion zanikne... ale ked zavrete okno a znovu otvorite stranku, tak sesion stale existuje...

tu je kod tej stranky: http://kachnak.esdesign.sk/session/text.txt

kam mam vlozit tu cast s tym cookies a v akom tvare.. ziadne upravi? aby odhlasilo ked zavrem prehliadac..
dakujem
AM_
Profil
odhlašování při zavření zodpovězeno v [#2]. Ujisti se, že v php.ini je session.cookie_lifetime = 0 ; pak by se měla PHPSESSID po vypnutí prohlížeče smazat a při opětovném zapnutí bys měl být tedy odhlášen (POZOR - pokud zavřeš pouze záložku a prohlížeč pořád běží, tak to nefunguje - to by šlo řešit leda přes JavaScriptovou událost onUnload, která by se už nějak postarala o zrušení SESSION, ale tu podporují jen některé prohlížeče)
PetrPN
Profil *
Proč nevytvořit jednu proměnnou a přidělit jí PHPSSESID při přihlášení.. a když zavřu okno příště se rovnat nebudou..
např..

session_start();
global $PHPSESSID, $sessid_okna;
// ověřovat..
if(($PHPSESSID == $sessid_okna) and ($akce != 'logout')...

nebo..

// pokud cookie neexistuje, zkontroluju jestli nejde o první přihlášení a když ne ,vyhodíme uživatele

If (!IsSet($autorizace)):
if($uzivatel_nove_prihlaseni=='ano'):
$uzivatel_nove_prihlaseni='ne';
SetCookie("autorizace", (date("j.n.Y G:i:s",(time()+(900)))), Date("U") + 15*60);
else:
SetCookie("autorizace");
$akce='logout';
endif;
Else:
SetCookie("autorizace", (date("j.n.Y G:i:s",(time()+(900)))), Date("U") + 15*60);
Endif;

Dá se udělat ledacos, jen drobet přemýšlet a mít trpělivost..
Alphard
Profil
PetrPN:
Jste si vědom, že odpovídáte na dva měsíce starý dotaz?

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0