Jolafreem
Messages postés6Date d'inscriptionvendredi 23 mai 2008StatutMembreDernière intervention26 mai 2008
-
23 mai 2008 à 14:42
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
26 mai 2008 à 17:49
Bonjour,
je développe une interface d'administration en AJAX.
Voici le problème auquel je suis confronté :
J'ai un textarea qui contient du code HTML et je souhaite l'envoyer vers mon script PHP.
Seulement ce code HTML peut contenir toutes sortes de caractères, notamment les caractères "&" et "?"
Pour envoyer ce code via AJAX, que ce soit avec la méthode GET ou POST, la caractère "&" est utilisé comme séparateur de variable. Et pour la methode GET, le "?" peut poser problème.
Exemple :
requete normale : index.php?var1= value1&var2=value2&var3=value3
type de requete posant problème :
index.php?var1 = [test.php?varx=valuex test]
J'ai fais des recherches, mais les termes HTML et textarea interfèrent avec les résultats. Quelle solution privilègeriez vous ?
Je pensais remplacer le caractère "&" par un autre et le rétablire sur le serveur via PHP. Avez vous une solution plus simple, ou disons plus propre ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 23 mai 2008 à 16:45
pas tout à fait nico ;o|
lu chez selfHTML :
escape()
Transforme les caractères de commande (caractères de commande avec des
codes ASCII de 0 à 31) dans leurs valeurs ASCII numériques et cela sous
forme hexadécimale. Fait devancer chaque valeur du signe de séparation "%"
et renvoie la chaîne de caractères ainsi créée. Pour les signes autres que les
caractères de commande, escape() renvoie les signes inchangés. Il s'agit donc
d'une fonction qui enlève des valeurs les caractères de commande et des
caractères spéciaux pour les traduire en chaîne de caractères.
et curieux, mais unescape fait tout le contraire.
<hr /> Cordialement Bul [mon Site] [M'écrire]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Jolafreem
Messages postés6Date d'inscriptionvendredi 23 mai 2008StatutMembreDernière intervention26 mai 2008 23 mai 2008 à 19:43
D'après ce que j'ai pu trouver sur fr.php.net, il semblerait que encodeURIComponent() soit une meilleur solution plutot que escape() pour encoder en javascript (envoyer avec la methode POST). Il faudrait donc utiliser urldecode() coté PHP.
Citation :
------------
If you are escaping strings in javascript and
want to decode them in PHP with urldecode (or want PHP to decode them
automatically when you're putting them in the query string or post
request), you should use the javascript function encodeURIComponent()
instead of escape(). Then you won't need any of the fancy custom
utf_urldecode functions from the previous comments.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 26 mai 2008 à 11:50
merci du retour,
j'eusse probablement, malgré tout, utilisé escape, rien d'autre à faire, nulle part
( je dis ça uniquement pour e%%e$§e$ le monde )
<hr /> Cordialement Bul [mon Site] [M'écrire]
Jolafreem
Messages postés6Date d'inscriptionvendredi 23 mai 2008StatutMembreDernière intervention26 mai 2008 26 mai 2008 à 17:16
Je viens de tester escape() pour ma culture javascript. Ca semble marcher, sauf que, avec les caractères accentués, j'obtiens un certain caractère mystère : ?
Il doit y avoir une raison à cela et sans doute quelques chose à faire de plus pour obtenir les bons caractères coté PHP.