Probleme d'apostrophe.

Probleme d'apostrophe. - PHP - Programmation

Marsh Posté le 27-10-2004 à 13:44:10    

Bonjour tous le monde :)
 
J'espere reussir à expliquer clairement mon probleme, mais c'est pas gagné :)
donc allons y !
 
Voila, j'ai crée un formulaire, avec 2 bouton, un pour valider, et l'autre pour avoir un apercus.  
Le tout est sur la meme page, on fait juste la difference entre "valider" et "aperçus" en verifiant quel bouton à été utilisé. (comme ça j'ai l'aperçus qui apparait au dessus de mon forumlaire).
Jusque là ca va? alors voila la suite.
 
pour chaque champs du formulaire je definis :

Code :
  1. $champs_numero_champs_post= (isset($_POST['nom_du_champs'])) ? $_POST['nom_du_champs'] : "";


 
ainsi qu'une ligne qui corrige le probleme d'apostrophe.
 
et ensuite j'affiche le formulaire de cette façon :  

Code :
  1. <input type="text" name="nom_du_champs" size="40" maxlength="255" value="<? echo $champs_numero_champs_post; ?>">


 
mon probleme c'est que le probleme d'apostrophe ne se corrige que si j'appuis une fois sur aperçus avant de valider.
Donc si je valide directement, j'ai droit a une Erreur SQL car il y a une ' en trop :(
 
donc ca fait déjà quelque temps que je cherche à corriger ça, mais je n'y arrive pas :( bref si vous avez un solution, je suis preneur :D
 

Reply

Marsh Posté le 27-10-2004 à 13:44:10   

Reply

Marsh Posté le 27-10-2004 à 14:56:48    

Montre ta ligne SQL d'insertion dans ton code PHP...

Reply

Marsh Posté le 27-10-2004 à 16:35:17    

Code :
  1. $sql = "INSERT INTO $tbsite VALUES('', '$champs1' , '$champs2' , '$champs3' , '$champs4' , '$champs5' , '$champs6' , '$champs7' , '$champs8' , '$champs9' , '$champs10')";
  2.  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());


 
je pense que c ce dont tu parlé :)(enfin j'espere)


Message édité par StrAbZ le 27-10-2004 à 16:36:02
Reply

Marsh Posté le 27-10-2004 à 16:39:33    

C'est bizarre, avec cette syntaxe, j'ai jamais le problème de l'apostrophe. :/ (en tous cas avec mysql).
 
Tu vas devoir échapper l'apostrophe avant l'insert dans la base. Regarde sur la doc les différentes fonctions pour échapper comme addslashes ;)

Reply

Marsh Posté le 27-10-2004 à 16:51:51    

oki je vais voir ça :)
si je m'en sort pas je reviens :D

Reply

Marsh Posté le 27-10-2004 à 17:17:08    

StrAbZ a écrit :

oki je vais voir ça :)
si je m'en sort pas je reviens :D


 
et pourquoi t'essaye pas avec des stripslashes ou des addslashes ? A mon avis ca resoudrait ton probleme ...

Reply

Marsh Posté le 27-10-2004 à 17:47:51    

bunker83+1 a écrit :

et pourquoi t'essaye pas avec des stripslashes ou des addslashes ? A mon avis ca resoudrait ton probleme ...


 
Heu il a besoin des deux...  :D  s'il rajoute des \, il devra les enlever ensuite...  :D

Reply

Marsh Posté le 27-10-2004 à 17:55:30    

je crois que je me suis fouré dans un bordel pas possible entre les ' et les " :(
 
sur ma page du formulaire, j'ai ça pour chaque champs :  

Code :
  1. $champs9_post = strip_tags($champs9_post);
  2. $champs9_post = str_replace("\'","'",$champs9_post);
  3. $champs9_post = str_replace('\"','"',$champs9_post);


 
et mes champs sont de la forme :
 

Code :
  1. <input type="text" name="nom_du_champs" size="40" maxlength="255" value="<? echo $champs_numero_champs_post; ?>">


 
probleme lorsque je fait apeçus, si je rentre du texte avec des " les mots suivant les " ne s'affiche plus (normal a cause de code de l'input), seulement si je remplace dans l'input les " par des ' je perd cette fois les mot suivant ' .
 
donc je sais vraiment pas comment faire, j'ai essayé avec des stripslashes, addslashes etc... mais je tourne en rond :(

Reply

Marsh Posté le 27-10-2004 à 17:57:42    

htmlentities ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 27-10-2004 à 18:05:36    

en fait g oublié de precisé, dans mon aperçus tout marche normalement, le texte est bon, par contre c'est dans le formulaire qui doit ré-afficher les valeur des champs que s'a deconne.
 
je précise au cas ou !
 
EDIT:
 
Bon je crois que j'ai finalement trouvé la solution :)
 
j'ai fait :
 

Code :
  1. stripslashes(htmlentities($var, ENT_QUOTES));


 
sur toute les variables et la pour le moment tt fonctionne :)  
 
merci beaucoup !


Message édité par StrAbZ le 27-10-2004 à 19:41:10
Reply

Marsh Posté le 27-10-2004 à 18:05:36   

Reply

Marsh Posté le 11-03-2005 à 11:37:58    

Salut, j'ai rien a voir dans le topic mais j'avais le même problème et ta solution marche nikel !!
 
Merci et vive la fonction recherche du forum ;)
 
 
frlp

Reply

Marsh Posté le 11-03-2005 à 13:06:11    

Hermes le Messager a écrit :

Heu il a besoin des deux...  :D  s'il rajoute des \, il devra les enlever ensuite...  :D


Non il n'aura pas besoin de les enlever, car il n'y seront plus ;)

Reply

Sujets relatifs:

Leave a Replay

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