gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
10 avril 2006 à 12:29
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
10 avril 2006 à 19:20
bonjour, g un pb avec mon script de modification de mot de passe et je ne parviens pas a trouver le pb
le mesage d'erreur est le suivant:
Erreur SQL !
Champ 'gabs' inconnu dans where clause
g mis en rouge l endroit ki pour moi pose pb
dans config.php il y a le script de connexion BDD avec les variables associées a chacune des tables
gabs est le login ki se situe dans la BDD, il est donc bien existant
<?
include('../config.php');
$login = strtolower($_POST['login']);//force les caractères en minuscule
$mdp = $_POST['password'];
$mdp3 = $_POST['password3'];
// Sélection du login correspond au mot de passe entré par le visiteur
$verif = "SELECT * FROM $table_pers WHERE LCASE($table_pers.login)=$login AND mdp=$mdp";
// On exécute et on gère l'erreur
$ok = mysql_query($verif) or die('Erreur SQL !
'.mysql_error());
// Si le login et mot de passe ne correspondent pas
if(!mysql_num_rows($ok)) {
echo '<center>
Erreur dans la saisie du login et/ou du mot de passe ! ';
echo '
[javascript:history.go(-1) Retour]</center>';
// On arrête le chargement de la page
exit();
} else {
// Requête de "modification"
$modif = "UPDATE $table_pers SET mdp=$mdp3 WHERE login=$login AND mdp=$mdp";
// Exécution de la requête et gestion de l'erreur
mysql_query($modif) or die ('Erreur ! Impossible de modifier votre mot de passe !
'.mysql_error());
// Petit message...
echo '<center>
Votre nouveau mot de passe : '.$mdp3.'';
// Ici affichage d'un lien de votre choix, donc à modifier !!!
echo '
Votre page</center>';
// On arrête le chargement de la page
exit();
}
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 10 avril 2006 à 16:02
les magic quotes en gros sont des échappements magiques de caractères, c'est à dire que si c'est activé, tu n'auras pas de failles de sql injection possible dans ton code car les caractères pouvant permettre de type de failles seront échappés, par contre si elles sont désactivées, aie aie aie, bref la fonction get_magic_quotes_gpc() renvoit 0 si elles sont désactivées et 1 dans le cas contraire.
Ensuite mysql_real_escape_string() c'est pour échapper les caractères pouvant créer des failles de sql injection.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 10 avril 2006 à 13:14
"SELECT * FROM $table_pers WHERE LCASE($table_pers.login)=$login AND mdp=$mdp";
'SELECT COUNT(*) FROM ta_table WHERE LOWER(login) "'.$login.'" AND mdp "'.$mdp.'" '
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 10 avril 2006 à 14:23
Tant qu'on est dans les améliorations sur ce code, remplace <? par <?php, et n'oublie pas les isset() pour vérifier que les variables existent.
Ensuite je viens de voir en fait ta requête, tu as un champ par login ? c'est inutile franchement tu t'y prends mal.
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Vous n’avez pas trouvé la réponse que vous recherchez ?