Probleme php

Fermé
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 - 2 oct. 2008 à 02:37
Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 - 2 oct. 2008 à 04:42
Bonjour,
bonjour j ai voulu faire un code pour changer le mot de passe jai comme une erreur

voici mon code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<link href="mysql_connect_enregritrement.css" rel="stylesheet" type="text/css" />
<link href="styles-enregistrer.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php
//définir le titre de la page et metre le menu
$titre_page = "changer mot de passe";
include ('menu.php');



if(isset($_POST['submit']))
{//traiter le formulaire

function echappement ($data)
{ global $bd;//connexion nécessaire
if(ini_get('magic_quotes_gpc'))
{ $data = stripslashes($data);
}
return mysql_escape_string($data);
}//fin de la fonction

require_once('mysql_connect_mp_forgot.php');

$message = NULL;


//vérifier l'exitence du username
if (empty($_POST['nom_d_utilisateur']))
{ $nom_d_utilisateur = FALSE;
$message .= '<p>Vous avez oublié d\'indiquer votre nom_d_utilisateur</p>';
}
else
{ $nom_d_utilisateur = echappement($_POST['nom_d_utilisateur']);
}

//vérifier l'exitence du username
if (empty($_POST['mot_passe']))
{ $mot_passe = FALSE;
$message .= '<p>Vous avez oublié d\'indiquer votre mot de passe</p>';
}
else
{ $nom_d_utilisateur = echappement($_POST['mot_passe']);
}

//véréfier l' existence d'un mot de passe
if(empty($_POST['mot_de_passe1']))
{ $mot_de_passe = FALSE;
$message .= '<p>Vous avez oublié d\'indiquer votre nouveau mot de passe </p>';
}
else
{if ($_POST['mot_de_passe1'] == $_POST['mot_de_passe2'])
{ $mot_de_passe = echappement($_POST['mot_de_passe1']);
}
else
{ $mot_de_passe= FALSE;
$message .= '<p>Votre mot de passe est différent de celui que vous avez précédement déclaré</p>';
}
}

if ( $nom_d_utilisateur && $mot_passe && mot_de_passe)
{
require_once ('mysql_connect_mp_forgot.php');
}
else
{ //Quelque chose n'est pas correct

$message .= "<p>Veuillez avoir l'obligeance de recommencer</p>";
}

}

if(isset($message))
{ echo "<font color='red'>$message</font>";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
<fieldset>
<legend>Veuillez remplir le formulaire ci-joint:</legend>




<div id="username">
<p><b>nom d'utilisateur :</b>
<input type="text" name="nom_d_utilisateur"
size="20" maxlength="40"
value="<?php if (isset($_POST['nom_d_utilisateur']))
echo $_POST['nom_d_utilisateur'];?>"/>
</p>
</div>


<div id="email">
<p><b>Mot de passe actuel :</b>
<input type="password" name="mot_passe"
size="20" maxlength="40"
value="<?php if (isset($_POST['mot_passe']))
echo $_POST['mot_passe'];?>"/>
</p>
</div>


<div id="mot_passe_1">
<p><b>Votre nouveau mot de passe :</b>
<input type="password" name="mot_de_passe1"
size="20" maxlength="40"
value="<?php if (isset($_POST['mot_de_passe1']))
echo $_POST['mot_de_passe1'];?>" />
</p>
</div>


<div id="mot_de_passe2">
<p><b>Confirnmez votre neauvou mot de passe :</b>
<input type="password" name="mot_de_passe2"
size="20" maxlength="40"
value="<?php if (isset($_POST['mot_de_passe2']))
echo $_POST['mot_de_passe2'];?>"/>
</p>
</div>


</fieldset>
<div id="button">
<input type="submit" name="submit"
value="S'inscire"/>
</div>
</div>

</form><!-- fin du formulaire-->


<?php
//fin du l'instruction conditionnelle principale
include('pied.php');
?>

</body>
</html>


et celui de mysql

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<link href="mnysql_connect.css" rel="stylesheet" type="text/css" />
</head>

<body>

<?php
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("ma base");





// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité


$nom_d_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['nom_d_utilisateur']));
$mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_passe']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));

$rq = "SELECT id_utilisateur FROM utilisateur
WHERE (nom_d_utilisateur= $nom_d_utlisateur AND mot_de_passe=PASSWORD ('mot_passe'))";
$result = mysql_query($rq);
$nb = mysql_num_rows($result);
if($nb ==1)
{ $ligne = mysql_fetch_array($result, MYSQL_NUM);
//créer la requete
$rq = "UPDATE utilisateur SET mot_de_passe=PASSWORD('$mot_passe')
WHERE id_utilisateur=$ligne[0]";
$result= mysql_query($rq);
if (mysql_affected_rows()==1)//si c'est ok
{
include('menu.php');
//envoyer éventuellement un e-mail
?>
<div id="merci">
<p><b>Merci de vous vous être enregistré sur notre site.</b></p>
</div>
<?php
include('pied.php');

exit();
}
else
{echo"<p>Votre mot de passe n'a pas pu être modifié.".
"<p></p>" . mysql_error() ."<p></p>";
}
}
else
{ $message .= "<pVotre nom d'utilisateur et votre mot de passe ne correspondent pas à un utilisateur enregistré.</p>";
}
mysql_close();
?>

</body>
</html>

et cela m affiche comme erreur il est dans le code du mysql:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\site-porkeepoker\mysql_connect_mp_forgot.php on line 30
A voir également:

1 réponse

Ricky38 Messages postés 4349 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 460
2 oct. 2008 à 04:42
salut,

$nom_d_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['nom_d_utilisateur']));
$mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_passe']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));

$rq = "SELECT id_utilisateur FROM utilisateur
WHERE (nom_d_utilisateur= $nom_d_utlisateur AND mot_de_passe=PASSWORD ('mot_passe'))";
$result = mysql_query($rq);
$nb = mysql_num_rows($result); 


le $rq ne serait pas plutot :

$rq = "SELECT id_utilisateur FROM utilisateur
WHERE nom_d_utilisateur= $nom_d_utlisateur="$_POST['nom_d_utilisateur']"  AND mot_passe="$_POST['mot_passe']"";
-1