Bonsoir tout le monde.

Cela fais une bonne semaine que je travaille sur mon site avec l'aide de pas mal de tutoriel de ce site.
J'ai déjà créer pas mal de trucs mais là je suis bloquer...

J'ai envie d'enregistrer dans la base de donnée du site l' IP et la DATE de la dernière connexion de l'utilisateur mais je sèche...

Dans le formulaire de connexion j'ai rajouter cette ligne :

<input type="hidden" name="last_ip" id="last_ip" value="<?php echo $_SERVER'REMOTE_ADDR']; ?>">

Et voici la founction qui permet d'authentifier un utilisateur :

function login($d){
        global $PDO;
        $req = $PDO->prepare('SELECT users.id,users.login,users.address,roles.name,roles.slug,roles.level FROM users LEFT JOIN roles ON users.role_id=roles.id WHERE login=:login AND password=:password');
        $req->execute($d); 
        $data = $req->fetchAll();
        if(count($data)>0){
                $_SESSION'Auth'] = $data[0]; 
                return true;
        }
        return false; 
    }

Je rappelle que la connexion/deconnexion fonctionne très bien, je cherche juste comment enregistrer l'IP et la DATE de la dernière connexion de l'utilisateur.

Cordialement,
Tchoupi.

5 réponses


Salut, tu peux ajouter deux champs a ta base de données un pour l' ip et l'autre pour la date de la dernière entrée.
et puis quand l'utilisateur est bien logé t'enregistre l'ip et la date dans ces deux champs
c'est simple quand même :)

Tchoupi
Auteur

Salut,

Oui pour la base de donnée j'ai bien ajouté deux champs.
L'une pour l'IP et l'autre pour la date.

Pour enregistrer l'IP et la date, il n'y a pas de soucis, le problème c'est que je voudrais afficher à l'utilisateur sa dernière IP et date de connexion, or quand il se logera ça enregistrera sa connexion qu'il viendra juste de faire et du coup je perdrais les informations de sa précédente connexion.

Cordialement,
Tchoupi.

Quand il se connecte il prendra l'avant dernière.

Tchoupi
Auteur

Oui mais comment dire au site de prendre l'avant dernière info alors que quand ci sera déjà modifié avec la nouvelle IP et la nouvelle date de connexion

J'ai vraiment du mal à comprendre pour ça...

Ben si je comprends bien ce que tu fais, c'est que tu fais des modifications et non une insertion.

Tu pourrais faire autrement.

Par exemple à chaque connexion d’utilisateur, tu effaces la plus vieille en date et tu insère une nouvelle.
Pour chaque utilisateur, il y aura que deux lignes de données de connexion par utilisateur. En gros c'est une sorte de table de log minimal.

Au lieu de faire une User.adress, il faut créer l'adresse dans une autre table qui aura comme clé étrangère id de l’utilisateur. Sa clé primaire pouvant être la date et id utilisateur (tu peux prendre autre chose). Il y aura un champ IP ou adresse dans cette table (Il ne faut pas oublier qu'un utilisateur ça sort de chez lui ^^, il possède aussi un mobile donc l'adresse change en permanence).

Si tu veux optimiser et gérer ça via qu'une ligne de commande, ce serait cool de faire une procédure stocké au lieu de faire une vérification , une insertion et une suppression de données via PHP.