IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Surveillez les utilisateurs [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut Surveillez les utilisateurs
    Bonjour,

    J'ai une table "connectes" dans laquelle je voudrais qu'a chaque fois qu'un utilisateur se connecte sur mon site Intranet, une ligne soit créee avec son "user_nom", "DateConnect", "nbre_fois", "Ip".

    Voici le code que je vous fourni (Il marche a 50%) ... La table est vierge, je me connecte avec un login utilisateur ; il me créee bien ma ligne dés nouvelle connexion et me incremente le champ "nbre_fois" a chaque fois que je réactualise la page ... Mais (Voici le Mais) dés que je me loggue avec un nouvel utlisateur, il me crée bien une seconde ligne avec les bonnes informations mais dés réactualisation, il me zappe la premiere ligne dans laquelle figurait les informations du 1er utlisateur

    En esperant que vous ayez compris ... Je colle mon code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
     
    $sql = $_SESSION['USER_NOM'];
     
    $ip = $_SERVER['REMOTE_ADDR'];
    $date = date("y/m/d G.i:s", time());
    $nb_connectes = $sql;
    $recupip = $ip;
    $recupdate = $date;
     
    $sql1 = "SELECT * FROM connectes WHERE user_nom='$sql'";	
    $query = mysql_query($sql1) or die(mysql_error());
     
    if (mysql_num_rows($query) == " ")
     				   //création d'une nouvelle entité dans la table connectes
       				   {	
       		   	       $sql2 = "INSERT INTO connectes (user_nom,DateConnect,Ip) VALUES ('$nb_connectes','$recupdate','$recupip')";
    				   $query = mysql_query($sql2) or die(mysql_error()); 
    				   }
    		  	       //Si entité dèja existante, mise a jour de chaque champ
    else 	  		   {   
    	 	 	 	   $sql3 = "UPDATE connectes SET user_nom='$sql',DateConnect='$date'";
    				   $sql4 = "UPDATE connectes SET nbre_fois=nbre_fois+1";				  
    	 			   $query = mysql_query($sql3) or die(mysql_error());
    				   $query = mysql_query($sql4) or die(mysql_error()); 
        			   }  
     
    mysql_close($db);
    ?>

  2. #2
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    bonjour,

    ou sont tes clause WHERE????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Si entité dèja existante, mise a jour de chaque champ
    else {
    $sql3 = "UPDATE connectes SET user_nom='$sql',DateConnect='$date' WHERE...";
    $sql4 = "UPDATE connectes SET nbre_fois=nbre_fois+1 WHERE....";
    $query = mysql_query($sql3) or die(mysql_error());
    $query = mysql_query($sql4) or die(mysql_error());
    }
    tu dois lui dire quel utilisateur tu dois upgrader
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  3. #3
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Mais que mettrais tu en condition WHERE .?

    Merci.

  4. #4
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    il faut que tu fasses un test pour savoir quel est l'utilisateur puis prendre son identifiant unique et mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .... WHERE identifiant=identifiant recupere
    edit
    je viens de voir que dans ta table il manque une colonne identifiant. Tu as bien une table utilisateur avec chacun un identifiant unique. Cet identifiant tu dois le mettre dans cette table
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  5. #5
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    SUPER ... GRAND MERCI a toi Yiannis !!!!!

    Voici le code qui fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     <?php
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
     
    $sql = $_SESSION['USER_NOM'];
     
    $ip = $_SERVER['REMOTE_ADDR'];
    $date = date("y/m/d G.i:s", time());
    $nb_connectes = $sql;
    $recupip = $ip;
    $recupdate = $date;
     
    $sql1 = "SELECT * FROM connectes WHERE user_nom='$sql'";    
    $query = mysql_query($sql1) or die(mysql_error());
     
    if (mysql_num_rows($query) == " ")
                        //création d'une nouvelle entité dans la table connectes
                          {    
                             $sql2 = "INSERT INTO connectes (user_nom,DateConnect,Ip) VALUES ('$nb_connectes','$recupdate','$recupip')";
                       $query = mysql_query($sql2) or die(mysql_error()); 
                       }
                         //Si entité dèja existante, mise a jour de chaque champ
    else                  {   
                          $sql3 = "UPDATE connectes SET user_nom='$nb_connectes',DateConnect='$date',nbre_fois=nbre_fois+1 WHERE user_nom='$sql'";
     
                        $query = mysql_query($sql3) or die(mysql_error());
     
                       }  
     
    mysql_close($db);
    ?>

  6. #6
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    juste une question. Que va-t-il arriver si deux personne portent le meme nom . Il faudrait que tu trouve quelque chose de plus unique (adresse email par exemple)

    n'oublie pas le tag resolu stp
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  7. #7
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Oui tout a fait il faut que j'y pense ...

    Merci encore Yiannis ...

    Bye

    Je le mets en résolu.

    A une prochaine j'espere !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire déconnecter les utilisateurs d'une base
    Par ENIT-Info dans le forum Access
    Réponses: 23
    Dernier message: 28/02/2017, 14h57
  2. Réponses: 6
    Dernier message: 04/05/2005, 18h39
  3. Eviter d'inviter tous les utilisateurs au groupe root
    Par ggnore dans le forum Administration système
    Réponses: 24
    Dernier message: 21/10/2004, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo