Mes requetes ne s'effectuent pas mysql_query
Résolu
mimi8210
Messages postés
178
Statut
Membre
-
hack_net Messages postés 814 Statut Membre -
hack_net Messages postés 814 Statut Membre -
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 ...
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 ...
A voir également:
- Mes requetes ne s'effectuent pas mysql_query
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? - Forum Access
- La requête n'a pas pu être traitée en raison d'un conflit d'accès à la ressource demandée. ✓ - Forum Mozilla Firefox
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ? - Forum iPad
- Réessayez plus tard il est possible que votre ordinateur ou votre réseau envoie des requêtes automatiques. pour la sécurité de nos utilisateurs, nous ne pouvons pas traiter votre demande pour le moment. pour en savoir plus, consultez notre page d'aide. valider - Forum Virus
- Requête - Forum Windev
5 réponses
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...
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...
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é ... =/
<?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é ... =/
Ok donc pour la requête SELECT le problème est réglé! Merci ! =)
... As-tu une idée pour le UPDATE ?
... As-tu une idée pour le UPDATE ?
Oula sacré bordel ce code :p
Voila qui devrait être mieux ;)
A+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 !! =) =)
Merci beaucoup !! =) =)
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"]; )
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"]; )