Probleme de requete

Bonjour,

Voila j'ai commencé en php et j'ai un petit soucis avec une requete qui me renvoit toujours la même chose :


<?php
session_start(); // On démarre la session

mysql_connect("localhost", "root" , "");
mysql_select_db("database_fbb") or die("echec de donnexion");

$verifU = $_POST['user'];
$verifM = $_POST['mdp'];

$reponse = mysql_query("SELECT * FROM membre WHERE Pseudo = ' $verifU ' AND mot_de_passe = ' $verifM ' ");
$donnee = mysql_num_rows($reponse);

?>


Comment vous pouvez vous en rendre compte j'essaye de savoir si un utilisateur qui tente de se connecter a déjà enregistré un compte, et j'ai beau rajouter des tuples correspondants dans ma base, j'ai toujours 0.

Vous ne sauriez pas où peut être l'erreur ? je n'ai aucun message.
Configuration: Windows 7
Firefox 3.6

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salutations,

    Essaye çà :

    <?php 
    session_start(); // On démarre la session 
    
    mysql_connect("localhost", "root" , ""); 
    mysql_select_db("database_fbb") or die("echec de donnexion"); 
    
    $verifU = $_POST['user']; 
    $verifM = $_POST['mdp']; 
    
    $reponse = mysql_query('SELECT * FROM membre WHERE Pseudo = \'' . $verifU . '\' AND mot_de_passe = \'' . $verifM .'\'') or die(mysql_error()); 
    $donnee = mysql_fetch_array($reponse); 
    
    ?>
    
    1. Il ne faut pas mettre d'espace entre les ' et la variable.
      Penses à faire un trim et un addslashes/mysql_real_escape_string sur tes variables.
      @Truoris : au lieu de mettre \', tu peux mettre " ça fait plus clair.
      1. mince j'avais posté une réponse, visiblement elle n'a pas été enregistrée...

        En dehors d'un roman, je vous remerciais : merci beaucoup Truoris, ça marche =)

        Par contre j'ai gardé le mysql_num_rows() parce que je voulais avoir le nombre de tuples mais sinon c'est impeccable !

        Pour avion-f16, j'ai noté l'erreur avec les espaces, par contre je ne connaissais pas pour les problemes de caractere interdit (autre que les espaces bien sur) je pense que je vais me pencher sur le probleme des à présent. Merci ! =)
        1. Il n'y a pas de caractère interdit, c'est juste qu'il faut penser à échapper les apostrophes ou les guillemets pour éviter de fermer la chaine.
          $chaine = "C'est le 20 juillet 1969 que Neil Armstrong dit \"C'est un petit pas pour l'homme mais un bond de géant pour l'humanité.\""
          $chaine = 'C\'est le 20 juillet 1969 que Neil Armstrong dit "C\'est un petit pas pour l\'homme mais un bond de géant pour l\'humanité."';
      2. C'est tout ? et bien merci =)

        Je pense que je m'y pencherai un peu plus tard , pour l'instant j'essaye de maintenir mes sessions sur toutes les pages... session_start() ne suffit pas apparemment pour balader $_SESSION sur toutes les pages du serveur.
        1. Il faut mettre session_start() sur toutes les pages où tu veux utiliser les variables $_SESSION.