sessies en sessievariabelen in combinatie met datetime

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels Cup

Niels Cup

31/07/2012 13:51:58
Quote Anchor link
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:

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

?>


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
 
PHP hulp

PHP hulp

24/11/2024 01:32:45
 
Eddy E

Eddy E

31/07/2012 13:57:09
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$_SESSION
[ 'logged_in'] = true;
$_SESSION['gebruiker'] = $sGebruiker;
setcookie("last_login", date("Y-m-d H:i:s"));
?>


Ophalen/gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(isset($_COOKIE['last_login'))
    {

    echo 'U was het laatst ingelogd op ... '.$_COOKIE['last_login'];
    }

?>
 
Q S

Q S

31/07/2012 13:58:41
Quote Anchor link
Door dit bij een correcte inlog op te slaan in de database en vervolgens bij opnieuw inloggen weer op te halen uit de database.
 
Erwin H

Erwin H

31/07/2012 13:59:52
Quote Anchor link
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.
 
- SanThe -

- SanThe -

31/07/2012 14:00:47
Quote Anchor link
Waarom niet gewoon in de database zetten?
 
Marco PHPJunky

Marco PHPJunky

31/07/2012 14:01:55
Quote Anchor link
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...
 
Niels Cup

Niels Cup

31/07/2012 14:04:31
Quote Anchor link
OK THNX ;)
 
Kris Peeters

Kris Peeters

31/07/2012 16:00:55
Quote Anchor link
Zeg, iets anders ...

Met datetime objecten kan je heel gebruiksvriendelijk werken.

Misschien ook iets om eens naar te kijken.

Voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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');
?>
 



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.