Vraag : PHP Zittingen

Ik heb over PHP zittingen voor uren gelezen en de logica geen aan houdt me steek.  Het maakt me enkel de proberen-en-ware koekjesoplossing willen gebruiken maar de zittingen schijnen een weinig veiliger zodat wil ik geen yet.

After opgeven een gebruiker aan mijn website het programma opent, wil ik eenvoudig een PHP zitting die voor niet meer dan 2 uren zullen voortduren, of 30 minuten inactiviteit op de website registreren, welke first.

Seems eenvoudige genoeg komt.  Maar ik word verward met zittingen omdat er veelvoudige variabelen die bijvoorbeeld set.

zouden kunnen zijn, wat is het verschil tussen session_get_cookie_params () en session.cookie_lifetime zijn?  En wat over session.gc_maxlifetime die, begrijp is ik, spoor van het leven houdt van een zitting alvorens het automatisch lazarus? Wat gelijk als ik het koekje om in 2 uren maar session.gc_maxlifetime plaatste te verlopen is aan 1440 (24 minuten)?  Gaat mijn zitting zelfs lang genoeg leven?

I heeft ook dat het best is de standaardPHP zittingsmontages enkel om te houden (d.w.z. session.gc_maxlifetime=1440) gelezen en enkel mijn eigen „timestamp“ zittingswaarde geplaatst die ik kan gebruiken om te vergelijken toen de gebruiker de website inging of het laatst op something.

Ugh klikte, kan iemand hulp deze geheimzinnigheid met zittingen en koekjes ontrafelen?

And te verwijzen gelieve me niet naar de zittingsgids op door de PHP website omdat ik helemaal over het already.

Thank u ben geweest!

Antwoord : PHP Zittingen

Hier is een „clunky“ antwoord.  Kijk hier over mijn artikel.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_2391-PHP-login-logout-and-easy-access-control.html

Praktisch gezien, gaat uw zitting lang genoeg voor alles leven uw cliënt zou kunnen willen doen, tenzij wat de cliënt wil doen login aan de plaats, dan ongedwongenheid de computer is en naar de opera gaat, dan teruggekomen en nog denkt worden het programma geopend.  Dat zal niet werken.

Elke nieuwe paginalading aan de zelfde website (met sommige belangrijke beperkingen) stelt effectief de tijd van de koekjesafloop door het in de toekomst terug uit te breiden.  De standaarduitbreiding is ongeveer 24 minuten.

De koekjes en browsers hebben unieke interactie.  Overweeg dit: Al instantie van Firefox (vensters, lusjes, viewports) deelt de zelfde koekjestrommel.  U kunt twee die browser vensters hebben aan de zelfde website het programma worden geopend.  Zeer in de praktijk verwarrend aan ontwikkelaars, maar zeldzaam.  Het venster #1 plaatst een koekje, de venster#2 terugstellen het en breidt zijn tijd uit.  Het gedrag is voorspelbaar, maar de ongeduldige ontwikkelaars denken zelden door wat aan de koekjes gebeurt.  Firefox geeft u een goede manier om de koekjes te visualiseren - gebruik het.

Nu aan de kwesties identificeert u zich.  U wilt een zitting na twee uren (van activiteit tegenhouden?) of 30 minuten inactiviteit.  Het werkt niet als dat.  Tenzij u naar het probleem gaat om zittingen in detail te begrijpen en misschien uw eigen zittingsmanagers te schrijven, zullen uw zittingen na 24 minuten inactiviteit verlopen.  Het deel ongeveer twee uren is niet toepasselijk - elk nieuw gebruik van een Web-pagina die session_start bevat () zal de onderbreking nog eens 24 minuten in de toekomst werpen.  De inzameling van het huisvuil is onnauwkeurig, maar de koekjesafloop is vrij betrouwbaar.

In verband met dit, „verwijs me niet naar de zittingsgids op door de PHP website“ -- droevig, maar het is de definitieve verwijzing van de mensenpagina.  U moet het begrijpen, en als u niet gelieve terug hier met specifieke vragen te posten.
Andere oplossingen  
 
programming4us programming4us