Problème avec urlencode

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec urlencode

par jac3n » 31 juil. 2007, 17:32

en fait finalement jvai utiliser encodeURIComponent() pour le JS et rawurlencode() pour PHP : pas de vagues, ces deux func sont identiques et ne bug pas :)

Merci pour ta réponse mec ;)

Re: Problème avec urlencode

par naholyr » 31 juil. 2007, 16:53

Et est-ce normal qu'il change les espaces en "+" alors que la fonction similaire de JS escape() renvoi bien "%20" ?
Oui je crois que c'est la RFC qui veut ça.

Mais je ne vois pas le conflit, puisque dans tous les cas ce que tu passes par une URL doit être «urlencodé» et le caractère "+" étant un caractère réservé, il sera encodé comme le veut la règle :
urlencode('1+2') == '1%2B2'
urlencode('1 2') == '1+2'[/code]

Problème avec urlencode

par jac3n » 31 juil. 2007, 15:14

Salut tout le monde, je poste ici à cause d'un petit problème de compatibilité entre PHP et Javascript.

Comme chacun sait, les navigateur performants envoient automatiquement leur URL encodées

http://domain.com/éà devient http://domain.com/%C3%A9%C3%A0

Le problème vient de l'encodage des espaces :

Mettons que je veuille encoder :

http://domain.com/1 2

PHP, qui passe donc automatiquement les URL à urldecode() me renvoi http://domain.com/1+2

On conviendra qu'il change " " en "+", d'ou mon problème : si je veux faire passer "?1+2" pas de problème mais si je veut faire passer "1 2" (grace à un script JS automatiser) l'espace disparait, ma chaine est modifiée!

Donc j'ai 2 question :

Y a t-il un moyen de désactiver urldecode automatique des url par php?
Et est-ce normal qu'il change les espaces en "+" alors que la fonction similaire de JS escape() renvoi bien "%20" ?

Merci de m'aider à me sortir de ce bordel ;)