Autor Zpráva
WanTo
Profil
Je možné nějak zařídit, aby proměnné v $_SESSION zůstaly nastavené i po zavření a dalším otevření prohlížeče? Moc se mi nechce data ukládat jako Cookies, protože se jedná o choulostivé údaje určené pro kontrolu přihlášení uživatelů.
Peca
Profil
Jestli myslíš nějaké dlouhodobé uchování session, tak to asi nepůjde, protože v php se nastavuje jejich "životnost". Obvykle kolem 20 minut. Viz phpinfo.
tiso
Profil
WanTo čo vlastne chceš dosiahnuť? trvalé prihlásenie? alebo čo?
oblaciq
Profil
session_set_cookie_params(POCET_SEKUND);
session_start();

Za pocet sekund doplnis pocet sekund, ako dlho chces aby ti session platila. Ak zavries browser, a znovu ho otvoris pred vyprsanim casu, tak premenne v $_SESSION su stale platne. To je asi to co si chcel.

- ak ma navstevnik otvorene okno, a neposle request pocas nastaveneho casu (neobnovi cookies), takmu to odpili session. Cize nastavujes celkovu platnost, a nie platnost po zatvoreni okna.
- nastavujes iba platnost cookies, cize ak uz ta session neexistuje na serveri, tak ti to nepomoze. Cize natrvalo session neulozis.

Ale ja osobne by som to riesil asi nejakym ukladanim premennych do DB. Tlacitko "ulozit nastavenia" by ulozilo premenne do DB. A do cookies by som dal nejake ID s dlhsou platnostou, podla ktoreho by do obnovil session z DB, ak by uz neexstovala, a dalej pouzival $_SESSION pre rychlejsi pristup... Ale na to, ze session bude na serveri existovat aj rano ked sa zobudim, by som sa nespoliehal.

Treba sa tiez zamyslet nad bezpecnostou. Ze sa session rusi po zavreti okna nie je len pre zneprijemnenie zivota programatorom. :)
WanTo
Profil
tiso
Ano, uvažoval jsem nad tím, že dám uživateli na výběr mezi běžným a trvalým přihlášením. A s trvalým si nevím rady.

Prosím, nepoučujte mě o bezpečnosti. Vím, jaké je tu riziko, ale když se uživatel přihlásit trvale chce, je to jeho věc.
tiso
Profil
WanTo tak potom je to jasné - nastav mu cookie "trvale_prihlasenie" s neobmedzenou platnosťou s nejakým identifikátorom md5(id+browser+dalsi retazec(hash hesla, salt a podobne)) a v DB si nastav príznak na trvalé prihlásenie. Ak bude existovať cookie a hodnota z nej sa bude zhodovat s hodnotou ktorú získaš s rovnakých údajov, tak potom ho prihlás (vytvor session), ak nie, tak zruš neplatnú cookie...
RiZe
Profil
Já jsem si na to napsal třídu. Má metody pro spuštění sessions, odstranění, obnovu relace, vytvoření ID atp. Při vytvoření se předává bool hodnota zda chci udělat trvalé přihlášení. Vše se zapisuje do tabulky v databázi. K uživateli se posílá cookie s session ID. Při přístupu se kontroluje HTTP_USER_AGENT a IP a pokud je něco z toho jiné než co je v databázi, zneplatní se session. Pokud se vrací třeba druhý den) uživatel s trvalým přihlášením, provede se znovuvygenerování session ID a relace pokračuje.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0