Autor Zpráva
SteveO
Profil *
Hoj, mám problém s přihlašováním v IE. Ve všech ostatních prohlížečích to funguje jak má, kromě IE (9, ale nejspíš i v 7 a 8).
V IE zadám login a heslo, přihlásím se. Dostanu se na nějakou user stránku, ale jakmile kliknu na nějaký odkaz, nebo zmáčknu F5, IE mě odhlásí.
Pravděpodobně si asi nějak nepamatuje ID session.

Při vstupu na stránku zapnu session:
session_start();

A po zadání správného jména a hesla provedu přihlášení:
session_regenerate_id(); // ochrana před Session Fixation
setcookie(session_name(), session_id(), time()+3600*24*30, "/");
$_SESSION["uzivatel"]=...

Odstranění session_generate_id() taky nepomáhá.
Prosím o radu, dík :)
marek094
Profil
Zdravíčko,
nechce se mi v tom moc kuchat, ale zaprvé: „sessions“ se ukládají na server, ne do prohlížeče. Zadruhé to co ty ukládáš jsou cookies, ty jsou v prohlížeči. Přesně nechápu zamýšlenou kombinaci a efekt. Zkus zapnout cookies v IE.
martin1312
Profil
mas na kazdej stranke, kde pouzivas Session na zaciatku kodu session_start(); ?
Ugo
Profil
nemáš v subdoméně pomlčku (tuším i podtržítko)? (v doméně to snad bere, to by bylo moc :-P)
SteveO
Profil *
Chlapi, sessions se sice ukládají na server, ale v prohlížeči se ukládá cookie, která obsahuje ID session.
To co popisuju je známý bug exploreru, na zahraničních fórech se probírá často, ale ještě jsem se nikde nedobral žádného kloudného řešení, co s tím.
Session_start(); samozřejmě mám na každé stránce, a pomlčka ani podtržítko v doméně není (a ani nevím, co by s tím měla mít společnýho :)).
joe
Profil
SteveO:
Ještě jsem se nestkal s vlastní ukládáním session ID do cookies, to by se snad mělo dít automaticky.

Jak dál v kódu ověřuješ, jestli je uživatel přihlášený? Neděje se ti to session_regenerate_id() ještě jinde?

A co takhle živá ukázka?

Ještě si nech vypsat session ID přímo na stránku a porovnat ho s tím, co máš uložené v cookies.
Davex
Profil
SteveO:
Nevím, zda je to známá chyba, ale v Exploreru 8 mi to funguje. Devítku nemám, takže to v ní vyzkoušet nemohu.

Kromě toho zaslání nové šušenky zajistí už session_regenerate_id(), takže se znova posílat nemusí a platnost se dá nastavit přes ini_set() v nastavení session.cookie_lifetime.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0