Accueil > Forum > > > > Problème requête UPDATE
Problème requête UPDATE
mercredi 27 février 2013 à 11:47:29 |
Problème requête UPDATE

omlaly
|
Bonjour,
Je suis confronté à un problème tout bête !
Je voudrais faire une requête SQL de mise à jour de données (donc Code PHP : ). Je fais un test if et ça ne passe pas dans ce test (je ne sais pas pourquoi)
Quand je l'essaye, je n'ai pas d'erreur (la page est toute blanche) et quand je vais voir sur PHPMyAdmin, la requête SQL n'a pas fonctionné (c'est la même adresse e-mail qu'avant).
Voici le code PHP :
Code PHP :
$adresse_email = mysql_real_escape_string($_POST['adresse_email']);
$ancien_password = sha1($_POST['ancien_password']);
$nouveau_password = sha1($_POST['nouveau_password']);
$user_pseudo = $_SESSION['user_pseudo'];
// Mise à jour des données saisies par l'utilisateur
$query_bon_utilisateur_adresse_email=mysql_query("SELECT * FROM user WHERE user_email = '$adresse_email'") or die('Erreur lors de la mise à jour de l\'adresse e-mail'.mysql_error()); // Envoie une requête à un serveur MySQL
$query_bon_utilisateur_password=mysql_query("SELECT user_mdp FROM user WHERE user_mdp = '$ancien_password'") or die('Erreur lors de la mise à jour du mot de passe'.mysql_error()); // Envoie une requête à un serveur MySQL
if(mysql_num_rows($query_bon_utilisateur_adresse_email) ==1){ // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
mysql_query("UPDATE user SET user_email=\'$adresse_email\' WHERE user_pseudo=\'$user_pseudo\'") or die('Erreur lors de la requête SQL de mise à jour des données saisies par l\'utilisateur (adresse e-mail)'.mysql_error()); // Envoie une requête à un serveur MySQL
echo "Votre adresse e-mail a été mise à jour avec succès !";
}
if(mysql_num_rows($query_bon_utilisateur_password) == 1){ // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
mysql_query("UPDATE user SET user_mdp = '$nouveau_password' WHERE user_email = '$adresse_email'") or die('Erreur lors de la requête SQL de mise à jour des données saisies par l\'utilisateur (mot de passe)'.mysql_error()); // Envoie une requête à un serveur MySQL
echo "Votre mot de passe a été mis à jour avec succès !";
}
}
Voici le CREATE TABLE de la table user :
Code :
CREATE TABLE IF NOT EXISTS `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_comptesactives` decimal(10,0) NOT NULL,
`user_pseudo` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_mdp` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_date_inscription` datetime NOT NULL,
`user_naissance` date NOT NULL,
`user_email` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_localisation` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_profession` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_avatars` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_derniere_visite` datetime NOT NULL,
`user_bannis` int(11) NOT NULL,
`user_acces` int(1) unsigned NOT NULL DEFAULT '2',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=103 ;
En attendant vos réponses, je continue mes recherches...
Cordialement
|
|
mercredi 27 février 2013 à 12:43:23 |
Re : Problème requête UPDATE

NHenry
|
Bonjour,
"UPDATE user SET user_email=\'$adresse_email\' WHERE user_pseudo=\'$user_pseudo\'"
Les \ servent à échaper certains caractères, dans ton cas, c'est pas bon :
Si séparateur de chaine ', il faut donc échapper uniquement les \ et les '
Si séparateur de chaine ", il faut donc échapper uniquement les \ et les "
Donc retires les \ à tes \'.
Et réssayes.
Sinon, essayes d'afficher la requête exécutée avec un echo, pour la tester et comprendre.
v----Signature--------v----------------------------------------------
- Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.
- Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite :
). - En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
- Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés
---
Mon site
|
|
mercredi 27 février 2013 à 13:18:31 |
Re : Problème requête UPDATE

omlaly
|
En fait, ça fait le contraire de ce que je veux, je t'explique :
-quand je fais :
Code PHP : if(mysql_num_rows($query_bon_utilisateur_adresse_email) ==1){, ça fait rien (page blanche)
-quand je fais :
Code PHP : if(mysql_num_rows($query_bon_utilisateur_adresse_email) ==0){, ça m'affiche Code : Votre adresse e-mail a été mise à jour avec succès ! .
Quand je vais sur PHPMyAdmin, je vois la nouvelle adresse e-mail.
Voici le code PHP en intégralité :
Code PHP :
// On ouvre la session
session_start(); // Démarre une nouvelle session ou reprend une session existante
$adresse_email = $_POST['adresse_email'];
$ancien_password = sha1($_POST['ancien_password']);
$nouveau_password = sha1($_POST['nouveau_password']);
$user_pseudo = $_SESSION['user_pseudo'];
// Mise à jour des données saisies par l'utilisateur
$query_bon_utilisateur_adresse_email=mysql_query("SELECT * FROM user WHERE user_email = '$adresse_email'") or die('Erreur lors de la mise à jour de l\'adresse e-mail'.mysql_error()); // Envoie une requête à un serveur MySQL
$query_bon_utilisateur_password=mysql_query("SELECT user_mdp FROM user WHERE user_mdp = '$ancien_password'") or die('Erreur lors de la mise à jour du mot de passe'.mysql_error()); // Envoie une requête à un serveur MySQL
if(mysql_num_rows($query_bon_utilisateur_adresse_email) ==1){ // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
$affichage = mysql_query("UPDATE user SET user_email='$adresse_email' WHERE user_pseudo='$user_pseudo'") or die('Erreur lors de la requête SQL de mise à jour des données saisies par l\'utilisateur (adresse e-mail)'.mysql_error()); // Envoie une requête à un serveur MySQL
echo "Votre adresse e-mail a été mise à jour avec succès !";
}
if(mysql_num_rows($query_bon_utilisateur_password) == 1){ // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
mysql_query("UPDATE user SET user_mdp = '$nouveau_password' WHERE user_email = '$adresse_email'") or die('Erreur lors de la requête SQL de mise à jour des données saisies par l\'utilisateur (mot de passe)'.mysql_error()); // Envoie une requête à un serveur MySQL
echo "Votre mot de passe a été mis à jour avec succès !";
}
}
Donc, ça fait le contraire de ce que je voudrais !!!
En attendant vos réponses, je continue mes recherches...
Cordialement
|
|
mercredi 27 février 2013 à 13:34:47 |
Re : Problème requête UPDATE

NHenry
|
Bonjour,
Affiches la requête générée, puis testes-la dans PhpMyAdmin.
v----Signature--------v----------------------------------------------
- Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.
- Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite :
). - En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
- Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés
---
Mon site
|
|
mercredi 27 février 2013 à 13:56:40 |
Re : Problème requête UPDATE

omlaly
|
Voici le code PHP :
Code PHP :
// On ouvre la session
session_start(); // Démarre une nouvelle session ou reprend une session existante
$adresse_email = $_POST['adresse_email'];
$ancien_password = sha1($_POST['ancien_password']);
$nouveau_password = sha1($_POST['nouveau_password']);
$user_pseudo = $_SESSION['user_pseudo'];
// Mise à jour des données saisies par l'utilisateur
$query_bon_utilisateur_adresse_email=mysql_query("SELECT * FROM user WHERE user_email = '$adresse_email'") or die('Erreur lors de la mise à jour de l\'adresse e-mail'.mysql_error()); // Envoie une requête à un serveur MySQL
$query_bon_utilisateur_password=mysql_query("SELECT user_mdp FROM user WHERE user_mdp = '$ancien_password'") or die('Erreur lors de la mise à jour du mot de passe'.mysql_error()); // Envoie une requête à un serveur MySQL
if(mysql_num_rows($query_bon_utilisateur_adresse_email) ==1){ // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
$affichage = mysql_query("UPDATE user SET user_email='$adresse_email' WHERE user_pseudo='$user_pseudo'");
echo $affichage;
echo "Votre adresse e-mail a été mise à jour avec succès !";
}
if(mysql_num_rows($query_bon_utilisateur_password) == 1){ // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
$affichage2 = mysql_query("UPDATE user SET user_mdp = '$nouveau_password' WHERE user_email = '$adresse_email'");
echo $affichage2;
echo "Votre mot de passe a été mis à jour avec succès !";
}
}
Voici le résultat :
Code :
1Votre adresse e-mail a été mise à jour avec succès !
Quand je teste Code : SELECT * FROM user WHERE user_email = '$adresse_email' sur PHPMyAdmin, elle fonctionne : Code : MySQL a retourné un résultat vide (aucune ligne). ( Traitement en 0.0766 sec )
En attendant vos réponses, je continue mes recherches...
Cordialement
|
|
mercredi 27 février 2013 à 13:59:07 |
Re : Problème requête UPDATE

omlaly
|
PS : Je pense que MySQL a retourné un résultat vide car elle ne connait pas la variable $adresse_email...
|
|
mercredi 27 février 2013 à 15:38:36 |
Re : Problème requête UPDATE

stay
|
Tu penses ?
stéph
|
|
mercredi 27 février 2013 à 20:15:16 |
Re : Problème requête UPDATE

NHenry
|
Bonjour,
A la place de faire directement :
...=mysql_query("SELECT ...")
Passes pas une variable intermédiaire et affiches le contenu de cette variable.
Sinon, je pense que ton script souffre d'une grosse faille :
Tu vérifies séparément le mdp et l'adresse mail, de fait, on peut changer le mdp d'un membre, juste en connaissant son adresse mail.
v----Signature--------v----------------------------------------------
- Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.
- Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite :
). - En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
- Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés
---
Mon site
|
|
mardi 5 mars 2013 à 14:06:29 |
Re : Problème requête UPDATE

omlaly
|
Réponse acceptée !
C'est bon, problème réglé.
Cordialement
|
|
mardi 5 mars 2013 à 19:41:50 |
Re : Problème requête UPDATE

NHenry
|
Bonjour,
Quel était le problème (et sa solution) afin que ton expérience puisse servir à d'autres personnes en détresse.
v----Signature--------v----------------------------------------------
- Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.
- Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite :
). - En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
- Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés
---
Mon site
|
|
Cette discussion est classée dans : mysql, user, email, adresse, not
Répondre à ce message
Sujets en rapport avec ce message
UPDATE de plusieurs tables [ par noreille79 ]
J'ai un souci lors de la mise à jour (par les membres)des tables de ma base de données. Il modifie mon mot de passe même si je lui en ai pas déclaré
Erreure inconnue ... ?!? [ par lolyest ]
Bonjour, holla, hi !Je suis en train de dévelloper un script, le coici: $site_url = "**************"; $host = "localhost"; $user
Formulaire de mot de passe perdu [ par Sub_Mat ]
Bonjour à tous,Bon voila, je suis en train de mettre en place un système de récupération de mot de passe sur mon site, et j'ai beau chercher, mais je
IF NOT NULL recupère ces champs, sinon ne fais rien dans SELECT & WHERE [ par 555clR ]
Bonjour à tous, Voilà qq jours que j'essaie le soir de me documenter sur le sujet, mais je ne parviens à rien. J'ai une base de données dans laquelle
PROBLEME ENREGISTREMENT AVATAR DANS PAGES "INSCRIPTION" ET "MODIFICATION-PROFIL-MEMBRE" [ par MALINOIS77 ]
Bonjour, En suivant de multiples tutoriels, je suis en train de créer un site avec au départ des pages en php sont présentes afin de se connecter, de
session [ par nzenke ]
Bonjour, après avoir développée ma petite application en pur PHp5, je voudrai la migré vers l'orienté objet via codeIgniter, mais seulement au tout dé
Savoir si valeur existe déjà dans BDD [ par MacGaliver ]
Bonjour à toutes et à tous, Voilà j'explique mon problème. En fait j'ai trouvé un petit code source sur le web, mais voilà je ne sais pas comment le
Requête qui rend fou [ par clemg ]
Bonjour à tous, Voici mon problème : j'essaye de réaliser une requête toute simple, comme il y en a sur toutes les pages de mon site : insérer une ent
easyphp server [ par domi81 ]
Bonjour,J'ai installé easyphp 3.0Je voudrais renseigné une base de données avec un formulaire mais ce message d'erreur apparait : Objet non trouvé!L'U
comparaison avec php/mysql [ par cyrilherve ]
bonjour à tous ,je developpe depuis avec php/mysql et j'utlise pour cela wamp 2.0je suis confronté à un probleme de depuis peut, voici mon code:[CODE]
Livres en rapport
|
Derniers Blogs
INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 .INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 . par Patrick Guimonet
#Yammer Certains s'en sont déjà fait l'écho (ici en allemand par exemple : Yammer Integration in Office 365 Phase 1) ou bien sûr sur le blog SharePoint : Make Yammer your default social network in Office 365 en anglais. Mais c'e...
Cliquez pour lire la suite de l'article par Patrick Guimonet [DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK[DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK par bianca
Objectif
Pour aller plus rapidement dans les menus de Dynamics CRM depuis votre client CRM pour Outlook, vous pouvez utiliser le dossier des Favoris d'Outlook. En effet, par simple glisser/déplacer, vous pouvez déposer un éléme...
Cliquez pour lire la suite de l'article par bianca VISUAL STUDIO 2013VISUAL STUDIO 2013 par Etienne Margraff
Ahh, ENFIN ! c'est officiel, il va y avoir un VS et un TFS 2013. De nouvelles fonctionnalités qui vont à mon sens assoir la maturité de TFS qui est maintenant l'outil incontournable pour tout projet (.NET, mais pas seulement !). Si vous n'avez pas jet...
Cliquez pour lire la suite de l'article par Etienne Margraff CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT par JeremyJeanson
Note : Je poste cet article à titre de pense-bête. Cela fait des années que je me trimballe avec une capture d'écran, car je ne me rappel jamais comment choisir la collation d'un SQL Server pour SharePoint. Pour SharePoint, il est conseillé de choisir la ...
Cliquez pour lire la suite de l'article par JeremyJeanson ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGINETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGIN par Philess
Dans cet article nous allons créer un plugin installable sur le Team Web Access qui s'intègrera dans l'architecture du site et se chargera au moment où on le décidera.
Avant de lire ce billet et si cela n'est pas encore fait j...
Cliquez pour lire la suite de l'article par Philess
Logiciels
Nego Facturation (1.85)NEGO FACTURATION (1.85)Nego Facturation est un logiciel complet qui permet de gérer vos factures et devis très simplemen... Cliquez pour télécharger Nego Facturation Devis-Factures PHMSD (2.2.0.1)DEVIS-FACTURES PHMSD (2.2.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD WDmemoCode (2.0.0.1)WDMEMOCODE (2.0.0.1)WDmemoCode a été conçu pour aider les développeurs Windev à créer/compléter et conserver une base... Cliquez pour télécharger WDmemoCode ProtoMedic (4.0.0.11)PROTOMEDIC (4.0.0.11)ProtoMedic est un logiciel destiné principalement aux médecins généralistes.
ProtoMedic permet d... Cliquez pour télécharger ProtoMedic MyCurriculum 2011 (7.4.1.12)MYCURRICULUM 2011 (7.4.1.12)Rédigez votre Curriculum Vitae mais également ceux de votre famille ou de vos amis très facilemen... Cliquez pour télécharger MyCurriculum 2011
|