Probleme requete SQL

Résolu/Fermé
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 - Modifié par wildchildforlife le 23/04/2010 à 15:42
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 23 avril 2010 à 22:50
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

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
23 avril 2010 à 17:51
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
0
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 2
Modifié par wildchildforlife le 23/04/2010 à 20:49
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 ??!
0
wildchildforlife Messages postés 74 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 23 juillet 2011 2
23 avril 2010 à 20:49
Et autre chose !! Merci pour le var_dump vu son utilisé extraordinaire je connaissé pas son existance !!
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
23 avril 2010 à 22:50
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().
0