Ik ben bezig met een simpel winkelwagentje systeem. Ik maak hierbij gebruik van sessievariabelen om gebruikers(klanten) te identificeren. Hier volgt een deel uit het script:

<?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;

?>

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.
Dat gaat niet werken.
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:

<?php
$_SESSION[ 'logged_in'] = true;
$_SESSION['gebruiker'] = $sGebruiker;
setcookie("last_login", date("Y-m-d H:i:s"));
?>

Ophalen/gebruiken
<?php
if(isset($_COOKIE['last_login'))
{
echo 'U was het laatst ingelogd op ... '.$_COOKIE['last_login'];
}
?>
Door dit bij een correcte inlog op te slaan in de database en vervolgens bij opnieuw inloggen weer op te halen uit de database.
Als het gaat om ingelogde gebruikers dan moet je het niet in de sessie doen en ook niet in een cookie. Een cookie is namelijk weer per pc en wat als de gebruiker morgen inlogd vanaf het werk in plaats vanaf thuis.

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?
Dit kan je doen door de datum / tijd waarneer iemand inlogd op te slaan in je database (log) tabel..
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 ;)
Zeg, iets anders ...

Met datetime objecten kan je heel gebruiksvriendelijk werken.

Misschien ook iets om eens naar te kijken.

Voorbeeldje:
<?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');
?>

Reageren