Traitement des quotes

Traitement des quotes - PHP - Programmation

Marsh Posté le 20-11-2003 à 11:43:05    

Bon je me tire un peu les cheveux avec le traitement des guillemets et des apostrophes.
 
Voila
j'ai des champs dans un formulaire ou le contenu permet la saisi des " et des '  
 
cependant j'ai fait une fonction qui test la chaine pour verifieq ue c'est de l'alpah numerique [A-Z,0-9]
 
et j'aimerai laissé passé les " et  '
par le biais d'un :

Code :
  1. $temp2=ereg_replace(""","A",$temp2);


 
ensuite une fois le champ tratié et integré dans la BdD (avce les "  et  ') je veux afficher le cham sans problemes
 
et en evitant de voir a l'ecran les  \" ou \'
 
de même quand je copie ce champ dans un fichier.
 
En gros j'ai un peu de mal a traiter ces cracatères
 
je suis désolé si cette question a déjà été posé plusieurs fois
 
mais j'ai fait une recherche dans le forum et sur le net j'ai rien trouvé de convainquant , pourtant c'ets un problème récurant en développement  :(


Message édité par saxgard le 21-11-2003 à 09:18:23
Reply

Marsh Posté le 20-11-2003 à 11:43:05   

Reply

Marsh Posté le 20-11-2003 à 11:46:41    

Bin y a la fonction stripslashes() qui va te permettre de retirer les \


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 20-11-2003 à 11:48:52    

Taiche a écrit :

Bin y a la fonction stripslashes() qui va te permettre de retirer les \


 
mais sinon comment remplacer le " par un A avce ereg_replace?

Reply

Marsh Posté le 20-11-2003 à 11:51:37    

En l'escapant avec \ [:spamafote]
$temp2=ereg_replace("\"","A",$temp2);


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 20-11-2003 à 11:53:32    

Saxgard a écrit :

Bon je me tire un peu les cheveux avec le traitement des guillemets et des apostrophes.
 
Voila
j'ai des champs dans un formulaire ou le contenu permet la saisi des " et des '  
 
cependant j'ai fait une fonction qui test la chaine pour verifieq ue c'est de l'alpah numerique [A-Z,0-9]
 
et j'aimerai laissé passé les " et  '
par le biais d'un :

Code :
  1. $temp2=ereg_replace(""","A",$temp2);


 
ensuite une fois le champ tratié et integré dans la BdD (avce les "  et  ') je veux afficher le cham sans problemes
 
et en evitant de voir a l'ecran les  \" ou \'
 
de même quand je copie ce champ dans un fichier.
 
En gros j'ai un peu de mal a traiter ces cracatères
 
je suis désolé si cette question a déjà été posé plusieurs fois
 
mais j'ai fait une recherche dans le forum et sur le net j'ai rien trouvé de convainquant , pourtant c'ets un problème récurant en développement  :(  
 
 
 


 
Deja j'aimerais comprendre pourquoi tu remplaces tes " par des A... a ta place je modifierai ma regexp pour matcher les ". Un truc du genre =>
 

Code :
  1. "/^[\w\"]*$/"


 
ou
 

Code :
  1. "^[a-z0-9\"]*$"


 
Non?
 
Apres tu devrais jeter un oeil du cote de stripslashes() et addslashes().

Reply

Marsh Posté le 20-11-2003 à 11:56:55    

Taiche a écrit :

En l'escapant avec \ [:spamafote]
$temp2=ereg_replace("\"","A",$temp2);


 
ok je crois qu'avce ces 2 trucs  
 
ca devrait m'aider et ca devrait suffir enfin je pense  ;o)
cela dit je persista dire que ces histoires de 'et de " bin c assez embarassant ;o)
 
merci

Reply

Marsh Posté le 20-11-2003 à 12:20:19    

a un moment donné j'affiche un champ contennat un '
exemple : 'TEST'  
$row->design_long (= 'TEST' ) récupéré dans la base de donnée
 
de cette facon :
 

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value='".$row->design_long."' maxlength='80'></td>";


 
resultat rien ne s'afiche dans le formulaire

Reply

Marsh Posté le 21-11-2003 à 01:18:19    

Ben peut être qu'un

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value='".addslashes($row->design_long)."' maxlength='80'></td>";

te permettras d'affiché la donné comme il faut même avec des ' à l'intérieur. ;)


Message édité par omega2 le 21-11-2003 à 01:29:38
Reply

Marsh Posté le 21-11-2003 à 08:59:01    

omega2 a écrit :

Ben peut être qu'un

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value='".addslashes($row->design_long)."' maxlength='80'></td>";

te permettras d'affiché la donné comme il faut même avec des ' à l'intérieur. ;)


 
ah je vais essayer ca merci

Reply

Marsh Posté le 21-11-2003 à 09:06:05    

omega2 a écrit :

Ben peut être qu'un

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value='".addslashes($row->design_long)."' maxlength='80'></td>";

te permettras d'affiché la donné comme il faut même avec des ' à l'intérieur. ;)


 
non ca marche pas  dès qu'il rencontre un ' bin le reste n'ets pas affiché et le  '  non plus  

Reply

Marsh Posté le 21-11-2003 à 09:06:05   

Reply

Marsh Posté le 21-11-2003 à 09:19:16    

Code :
  1. echo "<td><input type=text size=\"20\" name=\"design_long['".$i."']\" id=\"design_long_".$i."\" value=\"".addslashes($row->design_long)."\" maxlength=\"80\"></td>";


Message édité par simogeo le 21-11-2003 à 09:19:47

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 09:25:12    

simogeo a écrit :

Code :
  1. echo "<td><input type=text size=\"20\" name=\"design_long['".$i."']\" id=\"design_long_".$i."\" value=\"".addslashes($row->design_long)."\" maxlength=\"80\"></td>";




 
ah oui ca ira peut etre meiux la  , je vais essayer

Reply

Marsh Posté le 21-11-2003 à 09:37:25    

simogeo a écrit :

Code :
  1. echo "<td><input type=text size=\"20\" name=\"design_long['".$i."']\" id=\"design_long_".$i."\" value=\"".addslashes($row->design_long)."\" maxlength=\"80\"></td>";




 
c'est bon ca marche
 
merci tt le monde
 
PS , ca se peut que je rencontre d'autres pb lié a ces quotes , je vous ferais signe  ;o)

Reply

Marsh Posté le 21-11-2003 à 09:43:12    

Saxgard a écrit :


PS , ca se peut que je rencontre d'autres pb lié a ces quotes , je vous ferais signe  ;o)
 


 
ben si t'as compris pourquoi ca marchait ... tu devrais plus avoir besoin de nous faire signe  ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 09:45:10    

simogeo a écrit :

Code :
  1. echo "<td><input type=text size=\"20\" name=\"design_long['".$i."']\" id=\"design_long_".$i."\" value=\"".addslashes($row->design_long)."\" maxlength=\"80\"></td>";




 
bon j'ai crié victoire trop top ca marche  toujours pas
 
la ca m'affiche dans le cas de  
 
TEST "TEST"  
 
ca affiche
TEST \     c'est tout
 
ensuite j'ai essayé de mettre

Code :
  1. value=\"$row->design_long\"


 
et la il n'y a que
 
TEST   qui s'affiche par contre
 
si je met  
 
TEST 'TEST'  la ca marche
 
franchement c'est prise de tete ces quotes
 
comment faire  pour pouvoire afficher les ' et "  :(


Message édité par saxgard le 21-11-2003 à 09:45:26
Reply

Marsh Posté le 21-11-2003 à 09:49:33    

je sais pas comment tu t'y prend mais y'a rien de plus classique que d'afficher des données récupérés d'une bdd .... avec ou sans quotes ..... elles sont intégres tes données en sortie de bas ou pas ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 10:03:38    

simogeo a écrit :

je sais pas comment tu t'y prend mais y'a rien de plus classique que d'afficher des données récupérés d'une bdd .... avec ou sans quotes ..... elles sont intégres tes données en sortie de bas ou pas ?


 
bin moi non plus il est la le pb , jes ais pas comment ca se fait que je galère autant  
 
OUi je récupère directement la valeur d'une base de données
 
quand je fais un simple echo de cette valur il ya  pas le moindre problème.
 
mon problème se pose dans le champ , avec le value  
soit j'arrive a afficher les ' soit les "  mais jamais les  2  
 

Reply

Marsh Posté le 21-11-2003 à 10:07:35    

$input_name=design_long[$i];
$input_value=stripslashes($row->design_long);
 
echo "<td><input type=\"text\" size=\"20\" name=\"".$input_name."\" id=\"design_long_".$i."\" value=\"".$input_value."\" maxlength=\"80\"></td>";


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 10:09:02    

toujours pour : $row->design_long= TEST "TEST"
 

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value=\"".$row->design_long."\" maxlength='80'></td>";


 
Bon pourquoi ca ne m'affiche pas les " ?
 

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value=\"".addslashes($row->design_long)."\" maxlength='80'></td>";


 
cette ligne ca m'affiche le \ mais pas de "

Reply

Marsh Posté le 21-11-2003 à 10:09:52    

simogeo a écrit :

$input_name=design_long[$i];
$input_value=stripslashes($row->design_long);
 
echo "<td><input type=\"text\" size=\"20\" name=\"".$input_name."\" id=\"design_long_".$i."\" value=\"".$input_value."\" maxlength=\"80\"></td>";


 
 
je vais essayer ca , je te remercie du temps et des efforts quetu passe a m'aider   :jap:

Reply

Marsh Posté le 21-11-2003 à 10:12:07    

simogeo a écrit :

$input_name=design_long[$i];
$input_value=stripslashes($row->design_long);
 
echo "<td><input type=\"text\" size=\"20\" name=\"".$input_name."\" id=\"design_long_".$i."\" value=\"".$input_value."\" maxlength=\"80\"></td>";


 
j'ai encore le meme  probleme  , il n'y a que TEST qui s'affiche par consequent ca bloque a  "  

Reply

Marsh Posté le 21-11-2003 à 10:13:34    

postes ici la portion de code html générée, plize


Message édité par simogeo le 21-11-2003 à 10:13:47

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 10:18:15    

simogeo a écrit :

postes ici la portion de code html générée, plize


 

Code :
  1. <td><input type=text size='20' name=design_long[0] id=design_long_0 value="TEST "TEST"" maxlength='80'></td>


 
il me met ca  , quand on voit ca on comprend que ca merde  
met quand je met addslashes ou que je met rien  
ca marche pas non  
bon j'essaye sans rien nis strip ni addslashes  ;o) et je te montre

Reply

Marsh Posté le 21-11-2003 à 10:20:24    

Pour :

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value=\"".$row->design_long."\" maxlength='80'></td>";


 
j'ai pareil

Code :
  1. <td><input type=text size='20' name=design_long[0] id=design_long_0 value="TEST "TEST"" maxlength='80'></td>


 
mnt je vais essayer avce addslasshes

Reply

Marsh Posté le 21-11-2003 à 10:22:36    

et si je fais  :

Code :
  1. echo " <td><input type=text size='20' name=design_long[".$i."] id=design_long_".$i." value=\"".addslashes($row->design_long)."\" maxlength='80'></td>";


 
j'ai :

Code :
  1. <td><input type=text size='20' name=design_long[0] id=design_long_0 value="TEST \"TEST\"" maxlength='80'></td>


 
et la a l'affichage j'ai seulement
 
TEST \  

Reply

Marsh Posté le 21-11-2003 à 10:26:28    

htmlentities(stripslashes($row->design_long));


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 10:33:03    

simogeo a écrit :

htmlentities(stripslashes($row->design_long));


 
ok je vais essayer ca , c'ets justement ce que j'étais en train de regarder  
pour remplacer les " et les ' par les codes html de type &#62 etc..
enfin bon je vais essayer ta fonction puisque je pense que ca doitvenir au meme ;o)

Reply

Marsh Posté le 21-11-2003 à 10:38:01    

Merci beaucoup ca marche  
 
on y est enfin arrivé
je persiste a dire qu'ils nous font bien chié ces quotes  :D

Reply

Marsh Posté le 21-11-2003 à 11:04:22    

j'imagine qu'il faut queje fasse le meme traitement quand je rempli des menu deroulants a partir d'info récupéré d'une base de données?
 

Reply

Marsh Posté le 21-11-2003 à 11:06:41    

en fonction du type de données ca peut être intéressant


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 21-11-2003 à 11:10:14    

simogeo a écrit :

en fonction du type de données ca peut être intéressant


 
en gros par précaution ca ne coute rein en debut d'appli d'initialiser ces variables de cette fcaon :
 
var1=trim(htmlentities(stripslashes(var1)))
var2=trim(htmlentities(stripslashes(var2)))
...
 
non?
ca peu eviter tt problème non? mais ca ne chnage rine au contenu de la variable? si?
 
admettons que je fasse
 
var1=trim(htmlentities(stripslashes(var1)))
 
et que desuite je fais unn insert dans une base de données
 
es-ce que dans la base la variable aura bien le bon contenu ou aura un contenu modifié a cause des fonctions?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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