Requete pour afficher le nom en fonction de l'ip

Requete pour afficher le nom en fonction de l'ip - PHP - Programmation

Marsh Posté le 06-06-2013 à 09:50:05    

Bonjour,  
 
J'essaie d'afficher le nom des visiteurs en fonction de l'ip enregistrée dans ma base de donnée. Ceci est pour un serveur de jeux. Si le joueur n'est pas enregistré, un message est affiché.
Voici les informations enregistrées comme ceci dans ma base (MYSQL):
 
id  ip  connections  guid  pbid  name  
 
 
Voici le code testé:
 

Code :
  1. <?
  2. $remote=$_SERVER["REMOTE_ADDR"];
  3. $host = localhost;
  4. $user = user;
  5. $bdd = bdd;
  6. $passwd  = PASSE;
  7. // Connexion au serveur
  8. mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" );
  9. mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
  10. // Creation et envoi de la requete
  11. $query = "SELECT name,ip FROM clients WHERE name = '$remote' ";
  12. $result = mysql_query($query);
  13. // Recuperation des resultats
  14. if (!mysql_fetch_row($result)) {
  15. echo "Aucun enregitrement ne correspond\n";
  16. }
  17. else {
  18. while($row = mysql_fetch_row($result)){
  19.  $name = $row[0];
  20.  $ip = $row[1];
  21.  echo "<b>$name</b>, <b>$ip</b><br>";
  22. }
  23. }
  24. mysql_close();
  25. ?>


 
J'ai inséré $remote=$_SERVER["REMOTE_ADDR"]; afin de comparer l'ip du visiteur à celle enregistré (je suis vraiment pas sur de mon coup...)
Avec ce code, j'ai en retour une page blanche.  
 
Si je change ma requête pour  name = 'dupont' ";  pour afficher l'ip d'un login precis, rien ne s'affiche également, cependant un name != 'dupont' "; m'affiche bien tout les users différents de Dupont.
 
En résumé, j'aimerais comparer l'ip d'un visiteur à ma base de donnée, ci celle-ci est déjà enregistrée, le login du joueur apparaît, sinon, un message est affiché.
 
Auriez-vous une idée du problème svp ?  
Merci d'avance pour le coup de main :)
 
 

Reply

Marsh Posté le 06-06-2013 à 09:50:05   

Reply

Marsh Posté le 06-06-2013 à 14:52:36    

WHERE `ip` = '$remote' ";
 
attention de bien mettre des croches autour de ip ;p

Reply

Marsh Posté le 11-06-2013 à 10:41:55    

Bonjour,
 
Si j'ai bien compris ce que vous voulez faire, votre code n'est pas du tout en accord avec vous.
 
Dans votre requete sql, vous dites :
 
SELECT name,ip FROM clients WHERE name = '$remote'  
Choisir le nom et l'adresse ip dans la table des clients ou le nom est égal à l'adresse ip. Pas vraiment bon, la requête devient alors :
 
 
SELECT `name`,`ip` FROM clients WHERE `ip`= '$remote'  
 
Et comme le disait rengzehn, il faut utiliser les "guillemets" (touche du 7) autour des nom de colonnes, table et bdd pour plus de sécurité ("ip" est un mot spécial dans le langage sql)
 
et pour la sélection, je te conseil de faire comme ça :
 
 while($row = mysql_fetch_row($result)){
 $name = $row['name'];
 $ip = $row['ip'];
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed