Mes requetes ne s'effectuent pas mysql_query

Résolu/Fermé
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 - 21 mai 2010 à 09:30
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 21 mai 2010 à 10:45
Bonjour,

Aucun message d'erreur, le code s'effectue jusqu'à la fin, simplement mes requêtes ne s'effectuent pas... Il y a deux requêtes: un select (qui doit s'enregistrer dans une variable) et un update qui doit s'effectuer sur la base de données. Le fichier concerne la modification d'un mot de passe. Voici les deux lignes de codes :

$req = mysql_query("SELECT motdepasse FROM CLIENT WHERE pseudonyme= '" .$_SESSION['pseudonyme']. "'") or die ("Erreur requete: ".mysql_error());

mysql_query("UPDATE CLIENT SET motdepasse=' ".$_POST["mdpnouveaux"]." ' WHERE pseudonyme=' ".$_SESSION["pseudonyme"]." '") or die ("Erreur insert: ".mysql_error());

Je précise que l'utilisateur est bien connecté, et que le reste du code fonctionne (j'ai fais des tests pour vérifier mes conditions). Une autre précision, si ça peut vous aider, lorsque que je fais directement par exemple $req='coucou'; la suite du code fonctionne correctement jusqu'à l'UPDATE ...


5 réponses

hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
21 mai 2010 à 09:45
Attention !

Quand tu dois faire plusieurs conditions de sélection (plusieurs AND après le WHERE), penses à bien mettre les champs que tu as sélectionné ! Ici après ton select tu prends motdepasse or dans tes conditions tu prends aussi pseudonyme ! Normale que SQL ne puisse pas te renvoyer pseudonyme !!!

Et, avec juste ce bout de code, je peut te dire que ta requette select ne sert à rien du tout...
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 09:51
Je suis désolée je n'arrive pas à comprendre ce que tu essayes de m'expliquer... je te passes le code de mon fichier :

<?php

// Inclusion et execution du fichier db.php
require('connexionBDD.php');

// Recuperation du mot de passe actuel de l'utilisateur
$req = mysql_query("SELECT motdepasse FROM CLIENT WHERE pseudonyme= '" .$_SESSION['pseudonyme']. "'") or die ("Erreur requete: ".mysql_error());

// On vérifie si tous les champs sont remplis
if (empty($_POST["mdpactuel"]) || empty($_POST["mdpnouveaux"]) || empty($_POST["mdpconfirme"]))
{
echo'Veuillez remplir tous les champs';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else
{
// On verifie si le mot de passe actuel tapé par l'utilisateur est correct
if ($_POST["mdpactuel"] != $req)
{
echo 'Votre mot de passe actuel est erroné';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else
{
// On verifie la confirmation du nouveaux mot de passe
if ( $_POST["mdpnouveaux"] != $_POST["mdpconfirme"] )
{
echo 'Erreur dans le nouveaux mot de passe';
?>
<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
// Si tout va bien, on modifie le mot de passe dans la base de données puis on redirige vers l'index
else
{
mysql_query("UPDATE CLIENT SET motdepasse=' ".$_POST["mdpnouveaux"]." ' WHERE pseudonyme=' ".$_SESSION["pseudonyme"]." '") or die ("Erreur insert: ".mysql_error());
header('location: index.php');
}
}
}
?>


Pourquoi dis tu que mon SELECT ne sert à rien ? Parce que moi je veux juste qu'il me renvoit le mot de passe de l'utilisateur connecté ... =/
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 09:55
ça y est j'ai compris, il faut que je mette SELECT motdepasse, pseudonyme ^^' je vais essayé =)
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 09:58
Ok donc pour la requête SELECT le problème est réglé! Merci ! =)
... As-tu une idée pour le UPDATE ?
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
21 mai 2010 à 10:06
Oula sacré bordel ce code :p

Voila qui devrait être mieux ;)

<?php

// Inclusion et execution du fichier db.php
require('connexionBDD.php');

// Recuperation du mot de passe actuel de l'utilisateur
$req = mysql_query("SELECT * FROM CLIENT WHERE pseudonyme='".$_SESSION['pseudonyme']."'") or die ("Erreur requete: ".mysql_error()); // on selectionne tout les champs ;) P.S : si ça ne marche pas, vérifie qua ta base de donnée s'appelle CLIENT et non client ou Client ;)

// On vérifie si tous les champs sont remplis
if(empty($_POST["mdpactuel"]) || empty($_POST["mdpnouveaux"]) || empty($_POST["mdpconfirme"])){
	echo'Veuillez remplir tous les champs';
?>
	<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
<?php
}
else{
	// On verifie si le mot de passe actuel tapé par l'utilisateur est correct
	//if ($_POST["mdpactuel"] != $req){ ==> IMPOSSIBLE ! En effet, $req renvoie 0 si erreur, et 1 si ok, donc tu fais :
	$tab = @mysql_fetch_array($req); // le @ sert a masquer les éventuelle erreur. Ici on met ta requette dans un tableau virtuel
	if($tab['motdepasse'] != $_POST["mdpactuel"]){ // ici motdepasse est le nom de ta colonne
		echo 'Votre mot de passe actuel est erroné';
	?>
		<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
	<?php
	}
	else{
		// On verifie la confirmation du nouveaux mot de passe
		if($_POST["mdpnouveaux"] != $_POST["mdpconfirme"]){
			echo 'Erreur dans le nouveaux mot de passe';
		?>
			<input type="button" value="Retour" onclick="window.location.replace('pagemoncompte.php')"/>
		<?php
		}
		// Si tout va bien, on modifie le mot de passe dans la base de données puis on redirige vers l'index
		else{
			mysql_query("UPDATE CLIENT SET motdepasse='".$_POST["mdpnouveaux"]."' WHERE pseudonyme='".$_SESSION["pseudonyme"]."'") or die ("Erreur insert: ".mysql_error());
			header('location: index.php');
		}
	}
}
?>


A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 10:14
Ca marche ! Je vais essayé de chercher où est ce que ça change pour le UPDATE parce que j'ai toujours pas compris mon erreur...
Merci beaucoup !! =) =)
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
21 mai 2010 à 10:14
Le UPDATE marche pas ?
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 10:16
... et là le fichier.php ne me bug pas alors que certains m'affichent le gros bug d'apache tu sais... enfin bon ^^' je le résoudrai ce mystère, je le résoudrai !! xD
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 10:20
Si ton UPDATE marche, le mien: non ....
0
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 51
21 mai 2010 à 10:21
Assures-toi que les nom de champs correspondent biens avec ceux de la base de donnée, vérifie le contenu des variables $_POST["mdpnouveaux"] et $_SESSION["pseudonyme"].

S'il t'affiche ton or die, donne nous l'erreur afficher, sinon vérifie ce que je t'ai dit (pour ce faire, commente ton UPDATE (met un // devant) et met echo $_POST["mdpnouveaux"]."<br>".$_SESSION["pseudonyme"]; )
0
mimi8210 Messages postés 167 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 29 avril 2014 10
21 mai 2010 à 10:42
c'est bon ça marche, =) encore merci ^^
0