Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Matúš Petrofčík:27.7.2014 14:04

Zdravím kolegovia, naskytol sa mi menší problém a neviem si rady :D
Potrebujem nastaviť, aby sa mi koláčik obsahujúci Session ID v prehliadači po ukončení relácie (sedenia, zavretie prehliadača) NEVYMAZAL.

Skúsil som to takto:

setcookie(session_name(), session_id(), time()+60*60*24*30);

Koláčik síce informuje, že sa vymaže až o mesiac, ale aj napriek tomu sa po zavretí prehliadača vymaže.

Poradíte mi prosím čo je potrebné urobiť, aby sa nevymazával? Ďakujem

Odpovědět
27.7.2014 14:04
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Matúš Petrofčík:27.7.2014 16:19

Chyba je zjavne len u prehliadača Google Chrome :/

Nahoru Odpovědět
27.7.2014 16:19
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Michal Žůrek - misaz:27.7.2014 16:22

:D :D to bylo první co mě napadlo dodat, ale pak jsem si řekl, že moje hledání chyb v Chrome by bylo až moc rýpavé :D :D

 
Nahoru Odpovědět
27.7.2014 16:22
Avatar
Odpovídá na Michal Žůrek - misaz
Matúš Petrofčík:27.7.2014 16:25

celý deň sa tu s tým hrajem, a náhodou, ale naozaj náhodou som otvoril IE 10, tak som to vyskúšal, a žiaden problém :D je to trochu smutné že taký rozšírený prehliadač a taka banálna chybka

btw mohol si mi tvoj prvý nápad napísať a ušetril by som si času :D

Nahoru Odpovědět
27.7.2014 16:25
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Michal Žůrek - misaz:27.7.2014 16:28

já když něco programuju, tak když mi v chrome něco nefunguje, první co udělám je test v jiném prohlížeči. Hned druhý nejčastěji bývá dotaz do google

XYZ does not work in chrome

na stackoverflow je většinou nějaké řešení

Editováno 27.7.2014 16:29
 
Nahoru Odpovědět
27.7.2014 16:28
Avatar
Odpovídá na Matúš Petrofčík
Uživatel sítě :27.7.2014 18:56

Stačí nastavit lifetime pro session cookie parametr. Tedy:

<?php
    session_set_cookie_params(600);
    session_start();

A tohle by mělo stačit aby se ti session ID uložilo do cookie na 10 minut, například.

Prostuduj si tuto stránku: http://php.net/…e-params.php - Všimni si třeba položky httponly či secure, jak u klasické cookie.. :)

Nahoru Odpovědět
27.7.2014 18:56
Chybami se člověk učí, běžte se učit jinam!
Avatar
Matúš Petrofčík:27.7.2014 22:22

Uživatel sítě : už preštudované :) dík

Nahoru Odpovědět
27.7.2014 22:22
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Matúš Petrofčík:27.7.2014 22:26

Uživatel sítě : nakoniec som to vyriešil aj takto:

...
// nastavenie session
ini_set("session.name", "id");
ini_set("session.cookie_httponly", true);
ini_set("session.cookie_lifetime", 60*60*24*30); /* mesiac v sekundách */
ini_set("session.cache_expire", 60*24*30); /* mesiac v minútach */
...

zaručím si aj to, aby sa mi zo serveru nevymazalo pole s daným session? ďakujem

Nahoru Odpovědět
27.7.2014 22:26
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Uživatel sítě :27.7.2014 22:36

Mělo by zůstat na serveru, dokud mu nevyprší zasedání. Ale dal jsi mi docela brouka do hlavy, tohle se myslím řeší přes session name.
Rychle řečeno: Uložíš jsi jméno skupiny zasedání, kterou si po dobu lifetime můžeš kdykoliv obnovit. Myslím, že to takhle funguje, pokud ji ovšem nezavoláš tak při nastartování dalšího zasedání by se mělo to staré smazat..

Nahoru Odpovědět
27.7.2014 22:36
Chybami se člověk učí, běžte se učit jinam!
Avatar
Matúš Petrofčík:28.7.2014 2:29

Uživatel sítě : Jak ako uložiť meno sessionu a potom obnoviť? Som trošku nepochopil :/

Ak by to nešlo inak, tak by som ten session mohol nejako ukladať do databázy.

Nahoru Odpovědět
28.7.2014 2:29
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovídá na Matúš Petrofčík
Uživatel sítě :28.7.2014 8:59

Omlouvám se, trochu jsem to nejspíše popletl, či už si to nepamatuji.

Zkoušel jsme to a dospěl jsem k tomu, že pokud budeš mít stále uložené session id, tak hodnoty, které jsi uložil stejně zůstanou na serveru. Zasedání, prostě zůstane uložené na dobu co id. Tedy, tak mi to funguje na localce při výchozích nastaveních.

Uložil jsem si id a čas, smazal jsem id z cookie a čas se také smazal. Tak jsem to tedy pochopil.. :D

Také bych ti ještě poradil, vždy před provedením nějaké citlivější operace, přihlášení nebo něco jiné, použít session_regene­rate_id(). Kvůli Session Fixation.. :)

Editováno 28.7.2014 9:01
Nahoru Odpovědět
28.7.2014 8:59
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.