Gérer les caractères spéciaux [PHP/MySQL/Javascript] - Programmation
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"
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
Marsh Posté le 20-06-2001 à 20:54:38
et les fonctions addslashes / stripslashes elles te plaisent pas ?
[edit]--Message édité par __Lolo__--[/edit]
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]
Marsh Posté le 21-06-2001 à 08:15:14
connait pas ça.... je va regarder ces ddeux fonctions
merci
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 ?
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
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
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 \" \' \\ \$
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 ???????????
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 ?????
Marsh Posté le 22-06-2001 à 15:20:40
elcap a écrit a écrit : BOUUUUHOUUUU !!!! SOS |
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);
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...
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