SESSION afsluiten na X aantal uren.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Ignace Verschaeve

Ignace Verschaeve

17/10/2024 15:09:05
Quote Anchor link
Ik heb een login pagina waar gecontroleerd wordt of ze reeds geregistreerd zijn. Als dit zo is kunnen ze inloggen. Daar worden dan session variabelen gemaakt met Naam, voornaam, einddatum van hun abonnement en een tag ingelogd= Ja.
Zover lukt alles. Op elke zoekpagina van verschillende onderdelen wordt dat gestart met "session_start();" en als $_SESSION[ingelogd] gelijk is aan Ja kunnen ze verder zoniet gaan ze terug naar de inlogpagina. Dat werkt ook.
Ik zou nu een scriptje willen toevoegen dat hun inlogtijd beperkt tot 4u. Want ik merk dat bij de provider waar ik bij ben een sessie pas verloopt na 24u.
Maar mijn vraag is nu, zet ik dat scriptje enkel op de inlogpagina of moet dat op elke pagina die start met "session_start();" . Dit zou de code zijn, ongeveer die ik daarvoor zou gebruiken. De begintijd zou natuurlijk in een sessievariabele gestoken worden bij het inloggen.Dus $begintijd = time();
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
session_start();

$testwaarde = "SESSION TEST";
$_SESSION['testing'] = $testwaarde;

// 4 uur in seconden
$inaktief = 14400;

$_SESSION['verloopt'] = $begintijd + $inaktief; // static expire

if(time() > $_SESSION['expire'])
{  
$_SESSION['testing'] = '';
 session_unset();
 session_destroy();
$_SESSION['testing'] = 'uw sessie is verlopen na 4u. Log opnieuw in.'; // boodschap
}

echo $_SESSION['testing'];


Wordt de sessie dan automatisch afgesloten na 4u? Of blijft de sessie draaien zelfs als er bijvoorbeeld 12u geen activiteit is.
Of heeft iemand betere ideeën.
 
PHP hulp

PHP hulp

18/10/2024 07:18:06
 
Ivo P

Ivo P

17/10/2024 19:15:28
Quote Anchor link
Ik neem aan dat je ergens 1 script hebt met een functie a la : isIngelogd()

In die functie controleer je dan of
$_SESSION['ingelogd'] == 'Ja'

(ik gebruik liever "1" in plaats van Ja, gezien je dan ook JA, ja of Yes zou kunnen hebben, afhankelijk van je bui.

Anyway:
die $_SESSION['ingelogd'] == 'Ja' wordt dan uitgebreid met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if($_SESSION['ingelogd'] == 'Ja'  && $_SESSION['expire'] > time()) ?>


Ik zie geen toegevoegde waarde aan unset, destroy etc.

Het leuke is namelijk dat je dan ook een "bezochte topics" of "gekozen kleur" in je session behoudt, ook als de gebruiker de hele ochtend op je site zit.
Dan logt hij opnieuw in, en heb je je overige settings nog steeds beschikbaar.
 
Ward van der Put
Moderator

Ward van der Put

17/10/2024 20:02:07
Quote Anchor link
Ik zou eerder verwachten dat een is-functie zoals isIngelogd() true of false zou retourneren.
 
Ignace Verschaeve

Ignace Verschaeve

17/10/2024 21:37:55
Quote Anchor link
@Ivo P
Ik controleer nu ook op 2 dingen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($_SESSION['ingelogd'] == "J" && $_SESSION['status'] == "BA")


Afhankelijk van hun status krijgen ze een andere keuzepagina voorgeschoteld. In het kort: gebruikers kunnen enkel de verschillende tabellen raadplegen. Medewerkers kunnen dit ook maar kunnen bovendien csv files maken van diverse tabellen, tabellen corrigeren (de inhoud ervan) enz.. Bestuursleden kunnen dit ook allemaal maar die kunnen de inloglijsten raadplegen. De status van de geregistreerde leden (bijvoorbeeld einddatum van hun abonnement) aanpassen, gevolgde cursussen, enz., Wie wat gecorrigeerd of aangepast heeft enzoverder. Wat ze opgezocht hebben dat interesseert ons niet. Wij willen wel weten wanneer ze ingelogd zijn en bijkomend dan ook wanneer ze uitgelogd zijn.
We houden tientallen tabellen bij, indexen van rouwbrieven, bidprentjes, parochieregisters, burgerlijke stand telkens met meer dan 100.000 records, het kan oplopen tot een half miljoen. Met bijhorende scans of verwijzing naar scans op her rijksarchief of Familysearch.
Gewijzigd op 17/10/2024 21:45:06 door Ignace Verschaeve
 
- Ariën  -
Beheerder

- Ariën -

17/10/2024 22:28:54
Quote Anchor link
Je kan eigenlijk nooit direct weten of iemand uitgelogd is. Als je de browser sluit, en de sessie verdwijnt, dan kanje browser ook geen seintje meer geven. En wat is eigenlijk praktisch het nut ervan om te weten wie wanneer uitgelogd is?

Je kan wel aan de hand van de laatste actieve tijd bijhouden en de huidige tijd of iemand weer actief is. Als er een kort verschil tussen zit van 5 minuten, dan zou ik het niet laten meetellen als een nieuwe inlog.
 
Ivo P

Ivo P

17/10/2024 23:29:11
Quote Anchor link
Gaat het om de statistieken?

ik had het idee dat het om de veiligheid gaat.
Het kan inderdaad onwenselijk zijn als anderen toegang hebben tot een pc, dat ze dan op alle sites waar die dag is ingelogd, nog steeds toegang kunnen krijgen.

Maar hoeveel pc's en telefoons is dat het geval.
Het is nu beter, maar ook Phphulp had er een handje van om je na korte tijd weer uit te loggen (of als je ook op een andere pc of device inlogt?)

Dat kan als irritant ervaren worden.
Het is wel prettig dat je niet steeds opnieuw moet inloggen. En het lokt uit dat men dan ook maar het password laat onthouden door de browser. Met als gevolg dat een vreemde gebruiker dan ook zeker kan inloggen op de site.

Het klinkt als een genealogie site?
Is het dan nodig om zo'n maatregel te treffen? Ik zie collega's die in de verzekeringsbranche zitten, vaak na minuten als weer gedwongen met 2FA in te loggen. Daar kan ik inkomen, maar ook daar is het wel erg korte tijd.

---
Het zou ook zo kunnen zijn, dat je de 4 uur telt vanaf de laatste activiteit: dat je niet na een ochtend werk en het typen van een epistel van 3 pagina's dat verloren ziet gaan als je rond het middaguur wilt opslaan en je 4 uren over zijn...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.