Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

httprequete, méthode POST et les caractères "&"

4 réponses
Avatar
Deg
Bonjour,

je rencontre un petit soucis avec la fonction HttpRequete utilisée en
méthode POST.

En effet, lorsque la chaine que je souhaites envoyer à une page web en
php contient le caractère "&", il est visiblement reconnu comme
délimiteur de variables et du coup le texte est tronqué à l'arrivé sur
la page WEB. Ce qui n'est pas sans poser problème quand on souhaite par
cette méthode envoyer du code HTML vers une page PHP qui se charge de
l'interface avec la base MySQL du site (car mon hébergeur ne laisse pas
d'accès direct à la base MySQL en dehors des IP de son serveur bien
sûr...). Donc tant que j'ai pas de "&" à passer ça me dépanne bien,
mais dès qu'il y a ce caractère ça cause soucis...

Y a t'il qqe chose à faire de particulier pour éviter ceci ? (j'ai
essayé un urlencode(lch) de ma chaine avant de la passer avec
httprequete, mais c'est idem... :(

Bien entendu la même chose est faisable aisément en php en remplissant
un formulaire qu'on envoit en "POST"...


Merci pour les infos/astuces si vous avez ;)

4 réponses

Avatar
Deg
Deg avait soumis l'idée :
Bonjour,

je rencontre un petit soucis avec la fonction HttpRequete utilisée en méthode
POST.




bon, visiblement j'inspire pas grand monde :( censuré sur les forums
officiels et sans réponses ici ;)...

Personne n'a jamais rencontré le problème ?
Avatar
Olivier Priser
Salut,

Effectivement & est reconnu comme délimiteur de variable par les serveurs.
Dans un souci de simplicité, je pense que la fonction URLEncode ne code pas
les & volontairement. Cela permet de passer une chaine de plusieurs
variables séparées par des & sans besoin d'autres manipulations sauf dans
ton cas (que tu n'es certainement ni le premier, ni le dernier à avoir...).

Donc, pour résoudre ton cas, il faut que tu remplaces les & qui ne sont pas
des séparateurs par %26

Je te conseille d'ailleurs de te créer une fonction convertissant les
caractères non supportés par la fonction URLEncode (ces derniers sont
indiqués dans l'aide de cette fonction) car & n'est pas le seul qui te
posera problème. N'utilise cette fonction que sur les valeurs de variables
passés en paramètre.
Pour trouver les correspondances, cherche sur google avec comme mot clé :
urlencode

Voilà, je pense que tu devrais t'en sortir avec ça.

Bon dev,

Olivier

PS: Je ne vois pas pourquoi ce sujet aurait été censuré. En principe tu
reçois un message du modérateur dans ce cas (ça m'est arrivé...). En tout
cas, c'est dommage que ton message ne soit pas passé sur les forums
officiels, je pense que ça aurait intéressé du monde.

Deg a fait appel :
Deg avait soumis l'idée :
Bonjour,

je rencontre un petit soucis avec la fonction HttpRequete utilisée en
méthode POST.




bon, visiblement j'inspire pas grand monde :( censuré sur les forums
officiels et sans réponses ici ;)...

Personne n'a jamais rencontré le problème ?




Avatar
Deg
Olivier Priser a exposé le 22/10/2005 :
Salut,

Effectivement & est reconnu comme délimiteur de variable par les serveurs.
Dans un souci de simplicité, je pense que la fonction URLEncode ne code pas
les & volontairement. Cela permet de passer une chaine de plusieurs variables
séparées par des & sans besoin d'autres manipulations sauf dans ton cas (que
tu n'es certainement ni le premier, ni le dernier à avoir...).

Donc, pour résoudre ton cas, il faut que tu remplaces les & qui ne sont pas
des séparateurs par %26

Je te conseille d'ailleurs de te créer une fonction convertissant les
caractères non supportés par la fonction URLEncode (ces derniers sont
indiqués dans l'aide de cette fonction) car & n'est pas le seul qui te posera
problème. N'utilise cette fonction que sur les valeurs de variables passés en
paramètre.
Pour trouver les correspondances, cherche sur google avec comme mot clé :
urlencode

Voilà, je pense que tu devrais t'en sortir avec ça.



ah cool je vais testé de ce pas cette histoire... en revanche j'ai une
petite inquiétude quand même vis-à-vis de la bonne retraduction par la
page web du %26nbsp; en   non ??

PS: Je ne vois pas pourquoi ce sujet aurait été censuré.



oui, oui, qd je disais censuré c'était pas forcément en pensant à mal,
c'était juste que le message n'a pas été publié... après la cause, j'en
sais rien du tout (bug, message passé à la trappe car pas validé ou je
ne sais quoi d'autre encore...). En tout cas pas reçu de message
m'indiquant que ça avait été censuré

en tout cas, merci bcp pour cette idée !

--
ôter les "_" pour me répondre en privé
Avatar
Deg
Olivier Priser a présenté l'énoncé suivant :
Salut,

Effectivement & est reconnu comme délimiteur de variable par les serveurs.
Dans un souci de simplicité, je pense que la fonction URLEncode ne code pas
les & volontairement. Cela permet de passer une chaine de plusieurs variables
séparées par des & sans besoin d'autres manipulations sauf dans ton cas (que
tu n'es certainement ni le premier, ni le dernier à avoir...).

Donc, pour résoudre ton cas, il faut que tu remplaces les & qui ne sont pas
des séparateurs par %26



yes ça fonctionne visiblement ! tiptop... Merci

--
ôter les "_" pour me répondre en privé