Hallo,
Ik heb een vraag over Session en date().

Ik maak gebruik van CET maar de tijd word maar in een 12 uurs notatie geplaatst.
In plaats van 23:00 krijg je 11:00.
Ik heb dit om de tijd op te halen:

date('d/m/Y h:i:s', time());


Hoe zorg ik dat deze alsnog in 24 uren weergeeft? Wat doe ik verkeerd?

Ik sla deze tijd op in een sessie.
Ik wil doormiddel van het controleren van deze sessie de gebruiker laten uitloggen bij inactiveit voor een bepaalde tijd.
Bijv, als de session al 30 minuten niet meer is geupdate.
Maar ik heb geen idee hoe ik dit doe. Iemand die mij opweg kan helpen?

En is het ook mogelijk om de sessie te verwijderen wanneer de gebruiker de browser sluit? En zoja? Hoe ?
Persoonlijk zou ik [php]strftime[/php] aanraden. Let er dan wel op dat de notatie dan anders is.


To format dates in other languages, you should use the setlocale() and strftime() functions instead of date().
Dank jullie,
Ik hou het even bij date().

En hoe kan ik na bepaalde tijd die sessie destroyen?
session.cookie_lifetime

met deze setting (kan je uitvoeren in ini_set bijv.) kan je de leeftijd van een session-cookie bepalen in seconden.
Is het niet afdoende dat sessies (of liever gezegd, sessie-bestanden) na verloop van tijd vanzelf opgeschoond worden? Het feit dat je een sessie-bestand op afroep destroyed houdt in dat er op dat moment een gebruiker de sessie raadpleegt, en dat houdt dan toch in dat er activiteit is? Ik vraag mij dan ook af waar het vandaan komt dat je expliciete timeouts wilt inbouwen in sessies? En of een sessie daar dan wel de goede plaats voor is.
Als je al de tijd op slaat kun je ook gewoon time() zelf opslaan. Controleren op "een half uur" wordt dan gewoon kijken of er al 1800 seconden verstreken zijn. Heb je helemaal geen gedoe met steeds "omrekenen" van/naar een bepaald formaat.
Bedankt, het is gelukt.


Hoe kan ik de sessie destroyen wanneer de site gesloten wordt?
Schijnt dat dit zou moeten werken:


session_set_cookie_params(0);
session_start();
Jasper Schellekens op 08/03/2018 22:15:58
Hoe kan ik de sessie destroyen wanneer de site gesloten wordt?

@Jasper, dat zeg ik dus, dit soort opmerkingen doen mij vermoeden dat je niet helemaal begrijpt hoe sessies werken. Waarom zou het nodig zijn om sessies expliciet te verwijderen? Je communiceert met een sessie via een cookie. Dit is het medium via welke je in verbinding staat met je sessie. Als dit cookie weg is is in feite de link met de sessie ook verdwenen. Na een bepaalde inactiviteit wordt het sessie-bestand vanzelf opgeschoond via garbage collection...

Dus nogmaals, waarom zou het expliciet opschonen van sessies nodig zijn? :/
Thomas van den Heuvel op 09/03/2018 02:50:55

@Jasper, dat zeg ik dus, dit soort opmerkingen doen mij vermoeden dat je niet helemaal begrijpt hoe sessies werken.

Dus nogmaals, waarom zou het expliciet opschonen van sessies nodig zijn? :/


Ik weet eigenlijk wel hoe sessies werken maar om mijn ervaring uit te breiden kom ik hier. Als ik helemaal zou begrijpen hoe sessies werkten zou ik dit topic ook niet gemaakt hebben, of wel?

Om terug te komen op je vraag, beetje irrelevant om de reden hier te posten maar goed; de reden dat ik wil dat sessies verwijdert worden wanneer de browser gesluit wordt is veiligheidsredenen. Wat als jij een administrator bij onze game zou zijn en (het zal niet veel voorkomen maar het kan altijd)je vergeet uit te loggen waardoor iemand opeens toegang krigjt tot het admin paneel met alle gevolgen van dien. Misschien heeft de persoon die nu toegang gekregen heeft wel toegang verkregen via de browser history. Als de sessies worden verwijderd op het moment dat de browser sluit dan is dit niet mogelijk.
Wat betreft sessies na een bepaalde tijd verwijderen doe ik omdat ik wil dat sessies na 10 minuten inactiveit al verwijderd worden. Ik meen ergens gelezen te hebben dat sessies standaard maar een klein half uurtje bestaan.

Reageren