sessies en sessievariabelen in combinatie met datetime
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?PHP
session_start();
$sGebruikercontrole = admin
$sWachtwoordcontrole = ****
if($_SERVER[REQUEST_METHOD] == 'POST')
if(isset($_POST['user'], $_POST['pass']))
{
//Overbodige spaties verwijderen
$sGebruiker = trim($_POST['user']);
$sWachtwoord = trim($_POST['pass']);
if($sGebruiker == $sGebruikercontrole && $sWachtwoord == $sWachtwoordcontrole)
// Correct gebruiker en wachtwoord inloggen
$_SESSION[ 'logged_in'] = true;
$_SESSION['gebruiker'] = $sGebruiker;
?>
session_start();
$sGebruikercontrole = admin
$sWachtwoordcontrole = ****
if($_SERVER[REQUEST_METHOD] == 'POST')
if(isset($_POST['user'], $_POST['pass']))
{
//Overbodige spaties verwijderen
$sGebruiker = trim($_POST['user']);
$sWachtwoord = trim($_POST['pass']);
if($sGebruiker == $sGebruikercontrole && $sWachtwoord == $sWachtwoordcontrole)
// Correct gebruiker en wachtwoord inloggen
$_SESSION[ 'logged_in'] = true;
$_SESSION['gebruiker'] = $sGebruiker;
?>
Dit is dus een deel van de code.Ik heb een sectie gemaakt op de pagina dat er als volgt uitziet:
Klant: {Session.gebruiker}
Vorige login: 2001-01-02 16:15:43
Het eerste deel is me gelukt door te werken met sessievariabelen. Hoe kan ik er voor zorgen dat waneer iemand weer inlogt de exacte tijd wordt weergeven dat deze persoon als laatst is ingelogd zoals met dikke letters is aangegeven.
Gewijzigd op 31/07/2012 13:55:17 door Niels Cup
Die datum van je login moet je opslaan in een $_COOKIE (setcookie()) omdat die wel bewaard blijft na het sluiten van de browser.
Een $_SESSIE verdwijnt dan.
Dus iets als:
Code (php)
Ophalen/gebruiken
Door dit bij een correcte inlog op te slaan in de database en vervolgens bij opnieuw inloggen weer op te halen uit de database.
Voor ingelogde gebruikers kan je echter prima gebruik maken van je database. Gewoon een veld erbij en daar sla je de datum/tijd op van de laatste login.
Waarom niet gewoon in de database zetten?
Mocht die persoon dan weer inloggen kan je kijken waarneer hij/zei voor het laatst was ingelogd.
Zo kan je eventueel ook vastleggen op welke pagina's de gebruiker is geweest of wat hij gedaan heeft of anders...
OK THNX ;)
Met datetime objecten kan je heel gebruiksvriendelijk werken.
Misschien ook iets om eens naar te kijken.
Voorbeeldje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// object met de tijd van nu
$now = date_create('now');
$now_string = $now->format('Y-m-d H:i:s O');
echo $now_string;
// object maken aan de hand van zo'n datetime string
$time = date_create($now_string);
// als voorbeeld, 4 dagen optellen:
$time->modify('+ 4 DAY');
echo '<br>' . $time->format('Y-m-d H:i:s O');
?>
// object met de tijd van nu
$now = date_create('now');
$now_string = $now->format('Y-m-d H:i:s O');
echo $now_string;
// object maken aan de hand van zo'n datetime string
$time = date_create($now_string);
// als voorbeeld, 4 dagen optellen:
$time->modify('+ 4 DAY');
echo '<br>' . $time->format('Y-m-d H:i:s O');
?>