Probleme requete SQL

Résolu
Bonjour j'ai un probleme sur ma requete je comprend pas pourquoi sa marche pas, voila ma requete :

if ( isset ($_POST['login']) AND isset ($_POST['mot_de_passe_connexion']))
{
mysql_connect ('localhost', 'root', '' );
mysql_select_db ('capital_torrent') ;

//RECUPERATION DES VARIABLES ENTRE PAR LUTILISATEUR

$login_entre_par_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['login'])) ;
$mot_de_passe_entre_par_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe_connexion'])) ;

//VERIFICATION DES DONNEES DANS LA BD

$verification_donnees = mysql_query("SELECT pseudo, mot_de_passe FROM utilisateurs WHERE pseudo = '$login_entre_par_utilisateur' AND mot_de_passe = '$mot_de_passe_entre_par_utilisateur' ") ;

//JE FAIS UN ECHO POUR VOIR SI LE PROBLEM PROVIEN DES DONNEES SAISI DANS LE FORMULAIRES, MAIS NON IL MAFFICHE EXACTEMENT CE QUI A ETE SAISI

echo $verification_donnees . '++++++' . $login_entre_par_utilisateur . '+++++++' . $mot_de_passe_entre_par_utilisateur ;

$nombre_resultat = mysql_num_rows($verification_donnees) ;
echo '++++++' . $nombre_resultat ; //SA MAFFICHE TOUJOURS 0
if ($nombre_resultat >= 1 ) // SI IL YA UN RESULTAT
{
$_SESSION['login'] = $login_entre_par_utilisateur ;
$_SESSION['mot_de_passe'] = $mot_de_passe_entre_par_utilisateur ;
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
else if ($nombre_resultat == 0 ) // SI AUCUN RESULTAT NA ETE TROUVE PAR LA REQUETE
{
?>
<p>Sans resultat</p>
<?php
}
}
?>

PS : dans ma requete quand jenleve la partie "AND mot_de_passe = '$mot_de_passe_entre_par_utilisateur' " sa marche trés bien ce qui est incensé vu que les donnees saisis se trouvent exactement dans ma bd !! merci de bien vouloir m'aider !!

1 réponse

  1. Les htmlspecialchars sont à faire de préférences lors d'un echo, pas pour les traitements PHP.

    Est-ce qu'une erreur est affichée ?
    Fais un var_dump de $nombre_resultat et $verification_donnees
    1. Merci mon vieux aparement c'est bien le htmlspecialchars qui posé probleme !! en l'enlevant sa marche a merveille !! Mais dit moi un truc, comment vais securisé les donnees saisi dans les formulaires sans le htmlspecialchars contre les injection html ??!
    2. Et autre chose !! Merci pour le var_dump vu son utilisé extraordinaire je connaissé pas son existance !!
    3. Pour éviter les injections SQL, les fonctions addslashes() ou mysql_real_escape_string() suffisent.

      Pour éviter la faille XSS (injection de code HTML) : utilise la fonction htmlspecialchars() lors de l'affichage (echo, print, ...) du texte. Et n'oublie pas le stripslashes().