Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 18. 2. 2011, 13:25:06
Dobrý den.
Potřeboval bych poradit, jak můžu ošetřit to, aby se po odhlášení nemohl vrátit uživatel zpeě na stránku ze které byl odhlášen. Oshlášení poběhne v pořádku, session se zruší, ale když se vrátí zpět a dá F5 tak se stránka zase znova načte bez přihlášení. Děkuji za všechny tipy! |
||
ShiraNai7 Profil |
#2 · Zasláno: 18. 2. 2011, 13:51:38
Anonymní:
„session se zruší“ „když se vrátí zpět a dá F5 tak se stránka zase znova načte bez přihlášení“ Když používáš PHP sessions, tak je serverem automaticky posílána hlavička, která zamezí cachování kódu samotné stránky. Takže by se při použití tlačítka zpět a dokonce znovunačtení stránky přes F5 nemělo dít to, co popisuješ. Je session skutečně zrušena? |
||
david80 Profil |
#3 · Zasláno: 18. 2. 2011, 15:01:06 · Upravil/a: david80
To jsem zrovna tenhle týden řešil a vymyslel jsem to takhle, dal jsem do hlavičky tento kod:
<?php session_start();?> <?php if (isset($_SESSION['prezdivka'])) // je v session uživatele přezdívka, nebo ID nebo cokoliv co je v session. { echo ""; // nevypíše se nic. } else // ale jestli v session už přezdívka není, když se session zruší { echo "<meta http-equiv=\"refresh\" content=\"0; url=http://".$_SERVER['SERVER_NAME'].$path."/index.php?logout=1\">"; // přesměrujeme uživatele na hlavní stránku } ?> |
||
ShiraNai7 Profil |
#4 · Zasláno: 18. 2. 2011, 15:21:13
Pokud jsi to myslel že "ještě na stránce s odhlášením je jakoby stále přihlášen" - stačí si k odhlašování udělat zvlášť skript a pak přesměrovávat zpět přes header.
|
||
Anonymní Profil * |
#5 · Zasláno: 20. 2. 2011, 20:07:32
ShiraNai7:
„Je session skutečně zrušena?“ Ano, zruším ji pomocí unset($_SESSION['user']); a pro ověření ji ještě vypíšu echo "Start - Hodnota proměnná SESSION['user'] je: " . $_SESSION['user'] . "<br />"; a opravdu neexistuje! Vrátim se tlačítkem zpět na stránky, dám F5 a okamžitě se všechny session vytvoří bez požádání hesla nebo čehokoliv jiného. Fakt tomu nerozumím :( |
||
puzzle Profil |
#6 · Zasláno: 20. 2. 2011, 21:35:59 · Upravil/a: puzzle
neruší se Session
session_unsert(); ? a měl bys asi použít i session_destroy(); to smaže soubor session ze serveru já to mám takto a funguje to bez problémů <form method="POST" action="#"> <input type="submit" name="odhlasit" value="Odhlasit"> </form> <?php if (isset($_POST['odhlasit'])) { session_start(); session_unset(); session_destroy(); } ?> |
||
Anonymní Profil * |
#7 · Zasláno: 20. 2. 2011, 22:21:44
puzzle:
„já to mám takto a funguje to bez problémů“ Tak jsem to zkusil jak jsi psal, ale výsledek je úplně stejny, při návratu na předchozí stránku ze které jsem logout zavolal dam F5 a session které jsem zrušil se okamžitě vytvoří. :( |
||
Časová prodleva: 13 let
|
0