Autor | Zpráva | ||
---|---|---|---|
TrueColor Profil * |
#1 · Zasláno: 9. 6. 2012, 16:15:21
Mám stránce logout.php je:
session_start(); session_destroy(); header("location:main_login.php") Stránka uživatele odhlásí. Přesměruje na formulář přihlášení. Kdekoliv se nachází tento kód v hlavičce: session_start(); include "prihlaseni/parts/current-url.php"; $url = $currentUrl; if(!session_is_registered(myusername)){ header("location:prihlaseni/login.php?url=".$url); Pokud se chci dostat na URL s tímto kódem, přesměruje uživatele na login.php. To ovšem neplatí u URL začínající: www.stranka.cz. Nevíte proč mi to dělá? |
||
Spectator Profil |
ověřuj
if (isset($_SESSION['nazev'])) { // prihlasen } za header('location: ...'); dávej exit; přesměrováním script nekončí. header(location by měla být absolutní adresa) session_is_registered() si nejsem jist, zda existuje, ale pokud ano, je to IMHO nějaká vykopávka. |
||
TrueColor Profil * |
#3 · Zasláno: 9. 6. 2012, 16:52:17
Nebyl jsem moc přesný, problém je, že ukončí session pro url adresy bez www, ale když najedu na nějakou stránku s www, zase se ukáže jako přihlášený. Zmíněné rady nepomáhají.
|
||
Tori Profil |
Myslím, že to bude problém s cookies. Zkuste před
session_start() dá jednu z těchto možností: (tečka před názvem domény je tam schválně)
ini_set('session.cookie_domain', '.stranka.cz'); // nebo $params = session_get_cookie_params; session_set_cookie_params($params['lifetime'], $params['path'], '.stranka.cz'); |
||
TrueColor Profil * |
#5 · Zasláno: 9. 6. 2012, 17:25:42
Vypadá to, že první možnost funguje. Děkuji!
|
||
Majkl578 Profil |
#6 · Zasláno: 9. 6. 2012, 18:49:24
Jen doplním, že by ses měl za každých okolností vyvarovat použití funkcí session_register, session_is_registered a session_unregister. PHP je od verze 5.4 (aktuální stabilní verze) nezná, byly zrušeny.
|
||
Časová prodleva: 12 let
|
0