Textarea : Récupération OK - Envoi sur BDD ECHEC

Textarea : Récupération OK - Envoi sur BDD ECHEC - HTML/CSS - Programmation

Marsh Posté le 25-07-2007 à 10:53:44    

Bonjour à tous,
Je récupère plusieurs champs de formulaires en POST, de façon classique : input texte, file, etc.. Aucun PB avec ceux là.
Mais dans mon formulaire j'ai aussi un TEXTAREA. Je le récupère avec  $mess=$_POST['mess'];
Lorsque je fais echo $mess il s'affiche sans aucun problème.
Mais lorsque j'update ma BDD : UPDATE table SET mess='$mess' WHERE user='$user' --> La bdd ne se met pas à jour, rien..
J'ai alors essayé de changer le hamp MESS de ma bdd : varchar, tinytext, longtext..etc
Rien n'y fait !
Merci d'avance de votre aide ;)

Reply

Marsh Posté le 25-07-2007 à 10:53:44   

Reply

Marsh Posté le 25-07-2007 à 11:12:10    

Si tu fais :

Code :
  1. mess='$mess'


Je me pose des questions sur la fiabilité/sécurité. On pourrait injecter des trucs pour modifier d'autres champs. Et si y'a une apostrophe dans le texte, boom.
 
Utilise plutôt :

Code :
  1. 'UPDATE `table` SET `mess`=\'' . mysql_real_escape_string($mess) . '\' WHERE `user`=\'' ....

Reply

Marsh Posté le 25-07-2007 à 11:15:11    

Merci, mais le $mess ne s'enregistre toujours pas dans ma BDD après la requete ! ..
Une autre idée ?

Reply

Marsh Posté le 25-07-2007 à 11:49:03    

ncdetoulouse > Est ce que la requette s'exécute bien et quel est le message d'erreur si ça se passe mal?
 
Si c'est pas déjà fait, fait donc un  

Citation :


$result = mysql_query($marequette);
if (!$result) {
    die('Requête invalide : ' . mysql_error());
}


 
 
EDIT : Pourquoi cette question n'est pas du côté php?


Message édité par omega2 le 25-07-2007 à 11:49:54
Reply

Marsh Posté le 25-07-2007 à 12:00:26    

Requête invalide : Unknown column 'o' in 'field list'
 
Je ne comprends pas cette erreur ! :s
Dsl pour la section

Reply

Marsh Posté le 25-07-2007 à 12:01:08    

Balance tout le code (enfin tout ce qui tourne autour de la requête)

Reply

Marsh Posté le 25-07-2007 à 12:06:42    

$pays=$_POST['pays']; $dep=$_POST['dep']; $age=$_POST['age']; $mess=$_POST['mess'];
$r1=mysql_query("UPDATE users SET pays=$pays, dep=$dep, age=$age, mess='$mess' WHERE mail='$mail' AND pass='$pass'" );
if (!$r1) {  
    die('Requête invalide : ' . mysql_error());  
}

Reply

Marsh Posté le 25-07-2007 à 14:01:14    

Comme dit, ta requête est complêtement faillée :( On ne met jamais une valeur comme ça cash, il faut toujours l'escapée (donc remplacer les ' par \'). Utilise mysql_real_escape_string sur tous les champs d'abord

Reply

Marsh Posté le 25-07-2007 à 15:13:46    

Et tu obtiens l'erreur "requête invalide" ou pas?
Par ailleurs ton champs pays c'est un entier dans ta base? Sinon il manque des quotes autour.
Et +1 avec tous les commentaires précédents.

Reply

Marsh Posté le 25-07-2007 à 18:30:53    

Merci ; j'ai fini par trouver (le pays n'avait pas de quotes)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed