Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/09/2006, 13h49   #1
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Par défaut [SQL] (PHP/SQL) Erreur de modification d'une valeur

Bonjour, j'ai créé une table stockant deux valeurs, je souhaite modifier ces valeurs à l'aide d'un formulaire. Toute la structure fonctionnait, par contre au moment de la requête SQL modifiant les valeurs il y a une erreur si j'entre une chaine de caractères, MAIS ça marche si j'entre une suite de chiffres =/

Voilà les extraits, je ne vois pas où est l'erreur :

Formulaire :
Code :
1
2
3
4
5
6
<label for="identifiant">Votre identifiant</label>
<input type="text" id="identifiant" name="_nv_identifiant" value="<?php echo $idt; ?>" size="20" /> <br />
<label for="mdp1">Votre mot de passe</label>
<input type="password" id="mdp1" name="_nv_mdp1" value="" maxlength="15" size="20" /> <br />
<label for="mdp2">Répétez votre mot de passe</label>
<input type="password" id="mdp2" name="_nv_mdp2" value="" maxlength="15" size="20" /> <br />
partie php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$ident = $_POST['_nv_identifiant'];
$pwd1 = $_POST['_nv_mdp1'];
 
...
 
// connexion réussie
$cmd = "UPDATE _pass SET _valeur=$ident WHERE _type='idt'";
if(!($result = mysql_query($cmd)))
	echo "<p class=\"erreur\">Erreur SQL, identifiant non modifi&eacute;.</p>";
 
$cmd2 = "UPDATE _pass SET _valeur=$pwd1 WHERE _type='pwd'";
if(!($result = mysql_query($cmd2)))
	echo "<p class=\"erreur\">Erreur SQL, mot de passe non modifi&eacute;.</p>";
et les champs de la base de données :
Code :
1
2
3
Champ   	Type
_type  	        char(3) 	
_valeur  	tinytext
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 13h58   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Toujours utiliser les fonctions mysql avec la syntaxe suivante

Code :
$result = mysql_query($query, $link) or die($query . " - " . mysql_error());
Ca aide beaucoup au débuggage

Pour ton erreur je table sur un souci de quotes ou un truc dans le genre !
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 14h11   #3
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Erf en effet ><
j'avais oublié d'entourer les variables de ' dans la requête...

Merci pour ton aide, c'est en effet pratique pour le débuggage. Cela dit on m'a dit que des gens malintentionnés pouvaient provoquer des erreurs et utiliser les informations affichées pour pirater la base de données.
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 14h24   #4
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Citation:
Envoyé par YoniBlond
Erf en effet ><
j'avais oublié d'entourer les variables de ' dans la requête...

Merci pour ton aide, c'est en effet pratique pour le débuggage. Cela dit on m'a dit que des gens malintentionnés pouvaient provoquer des erreurs et utiliser les informations affichées pour pirater la base de données.
Oui mais bon tant que tu es en période de développement/test c'est normal d'afficher les erreurs.

Et il me semble que si tu désactives l'affichage des erreurs dans php.ini le die ne s'affichera pas !
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 14h49   #5
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Hum je vais peut être pas étendre mon ignorance ni faire perdre trop de temps aux autres
Mais je ne connais pas php.ini, j'upload simplement mes fichiers sources sur le ftp. J'apprendrai ça tout seul, merci pour ton aide =)
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2006, 14h55   #6
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
N'oublies pas de cliquer sur si tout est clair
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h08.


 
 
 
 
Partenaires

Hébergement Web