[PHP/MySQL/Javascript] Gérer les caractères spéciaux

Gérer les caractères spéciaux [PHP/MySQL/Javascript] - Programmation

Marsh Posté le 20-06-2001 à 18:08:45    

voilà, avec un script du genre :
 
echo "<a href=\"javascript://\" onClick=\"document.form.id_com.value='", $row->id_com, "'; document.form.listevalid.options[", $valid, "].selected=true\">", $row->id_com, "</a>";
 
seulement je voudrais aussi mettre un truc du genre :
document.form.config.value='", $row->config, "'\"";  
 
mais problème.... $row->config contient des quotes, peut contenir des double-quotes... et forcément ça me fait foirer mon javascript... donc deux questions :
 
- existe-t-il une liste de tout les caractères qui pourraient me foutre la merde dans mon javascript ?
- une fois que j'aurai cette liste, comment gérer ces caractères ???
 
merci,
Elcap :):):)

Reply

Marsh Posté le 20-06-2001 à 18:08:45   

Reply

Marsh Posté le 20-06-2001 à 20:38:22    

pour la liste des caracteres spéciaux, je la connais pas.
mais j'ai une solution pour leur gestion:
 
si tu as une variable php genre:  
 
$variable="j\'ai faim"  
 
pour l'utiliser en js, il faut doubler l'antislash:
 
$variable="j\\'ai faim"


---------------
groumf!groumf!
Reply

Marsh Posté le 20-06-2001 à 20:51:33    

non non j'ai : $variable="j'ai faim"
et en JS ça me fait foirer... et je veux mettre :
$variable="j\'ai faim"  
 
 
mais on m'a donné ça :
 
$chaine = eregi_replace("'","\\'",$row->config);
et je passe $chaine à Javascript.
 
ça devrait aller :)

Reply

Marsh Posté le 20-06-2001 à 20:54:38    

et les fonctions addslashes / stripslashes elles te plaisent pas ?  :D

 

[edit]--Message édité par __Lolo__--[/edit]


---------------

Reply

Marsh Posté le 21-06-2001 à 00:49:39    

pour les remplacements de chaînes simple comme celui-ci, il y a str_replace qui est beaucoup plus rapide, comparé à ereg_replace. (edit : addslashes et stripslashes, très bien aussi :))

 

[edit]--Message édité par youdontcare--[/edit]

Reply

Marsh Posté le 21-06-2001 à 08:15:14    

connait pas ça.... je va regarder ces ddeux fonctions :)
 
merci

Reply

Marsh Posté le 21-06-2001 à 14:24:30    

bon, j'ai aussi trouvé htmlentities() et htmlspecialchars()... j'ai lu ce que la doc en disait mais je me sens encore plus indécis... vos idées ?

Reply

Marsh Posté le 21-06-2001 à 16:51:35    

up ? :)

Reply

Marsh Posté le 21-06-2001 à 17:03:03    

heu...  
bah qd c des données venant d'un formulaire je fais un htmlspecialchars
sinon addslashes
 
si qqn a une théorie valable sur l'utilisation de telle  ou telle fonction suivant le cas ca m'interesse aussi


---------------

Reply

Marsh Posté le 21-06-2001 à 17:53:02    

la doc donne bien quelques principes mais j'arrive pas à mettre mon cas dans les explications...
 
le htmlspecialchars fait bien la même chose que le addslashes + d'autres trucs ? ou j'ai pas compris ?
 
le htmlspecialchars est-il supporté par php3 ? (cause free)
 
elcap

Reply

Marsh Posté le 21-06-2001 à 17:53:02   

Reply

Marsh Posté le 21-06-2001 à 18:49:33    

htmlspecialchars() ca transforme les caracteres spéciaux en leur code HTML
par exemple : é devient é
 
addslashes() ca met des slash devant les caracteres qui posent probleme aux strings comme " ' \ $
ca les transforme en \" \' \\ \$

Reply

Marsh Posté le 21-06-2001 à 19:05:56    

oui, merci ça la doc le dit :)))))
 
ceci dit, je vais utiliser htmlentities()
mais $nom_note = htmlentities("$nom_note", ENT_QUOTES);
 
me retourne "Wrong parameter count for htmlentities()" à l'éxécution.... la doc dit "Notez que l'argument optionnel a été ajouté PHP 3.0.17 et PHP 4.0.3."
 
chez free, ils seraient pas avant la V 3.0.17 par hasard ???????????

Reply

Marsh Posté le 22-06-2001 à 08:54:00    

:hot:  :hot:

Reply

Marsh Posté le 22-06-2001 à 10:31:09    

bon, si je vire le ENT_QUOTES... ça marche sauf que la simple quote n'est pas transformée... mais bordel... faut que je fasse une fonction moi-même ou quoi ???? c pas possible ça !!
 
c'est bien ENT_QUOTES qu'il faut mettre en argument optionnel pour le forcer à gérer les quotes simples et les doubles ?????

Reply

Marsh Posté le 22-06-2001 à 10:50:41    

:cry:  :cry:  :cry:  
BOUUUUHOUUUU !!!!
 
SOS
 :cry:  :cry:  :cry:

Reply

Marsh Posté le 22-06-2001 à 14:28:19    

:hot:  :hot:

Reply

Marsh Posté le 22-06-2001 à 15:20:40    

elcap a écrit a écrit :

:cry:  :cry:  :cry:  
BOUUUUHOUUUU !!!!
 
SOS
 :cry:  :cry:  :cry:  



:lol:
 
bah quoi, si ça marche pas ... fais des str_replace à la main, où est le problème ?
 
$row->config = str_replace('"', '"', $row->config);
$row->config = str_replace('\'', ''', $row->config);

Reply

Marsh Posté le 22-06-2001 à 15:24:59    

oui... je peux aussi... mais j'aurais voulu en avoir le coeur net.. en plus pas moyen de savoir quelle est la version utilisée de php chez free.. mais je suis en train de chercher un autre hébergeur (payant)... je fais une recherche sur le forum...

Reply

Sujets relatifs:

Leave a Replay

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