Comment poster "&" dans un formulaire html

Petit nouveau ! | 5 Messages

25 juil. 2012, 13:28

Bonjour,

J'ai un formulaire de Login pour authentifier mes utilisateurs avec LDAP.
Tous fonctionne sauf pour les utilisateur qui on un "&" (&) dans leur mot de passe.

Après différent test et une capture de paquets je comprend mieux.

Voici à quoi correspond la chaine de caractère posté:
login=Tony.McCarthy&pw=password&123

le mot de passe de cet utilisateur étant password&123 si je ressort la valeur de pw je n’obtiens que password, ce qui est normal car le & est considéré comme un séparateur.

alors comment faire pour poster un & sans qu'il ne soit pris pour un séparateur?

ViPHP
xTG
ViPHP | 7331 Messages

25 juil. 2012, 13:34

Essaies d'encoder les chaînes avec htmlentities().
Mais je doute que cela passe...

Eléphant du PHP | 53 Messages

25 juil. 2012, 14:30

Bonjour,

Une solution est d'utiliser urlencode() :
http://php.net/manual/fr/function.urlencode.php

Mais sache qu'il est déconseillé de faire passer des mots de passes par les urls.

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

ViPHP
xTG
ViPHP | 7331 Messages

25 juil. 2012, 17:49

Bonjour,

Une solution est d'utiliser urlencode() :
http://php.net/manual/fr/function.urlencode.php

Mais sache qu'il est déconseillé de faire passer des mots de passes par les urls.

Cordialement.
C'est propre à LDAP et son protocole (et non une volonté de l'auteur de ce topic qui ne peut rien y faire), et comme pour htmlentites() j'ai comme un gros doutr sur urlencode().
Car si le serveur LDAP ne transforme pas derrière il va pas trouver la correspondance mot de passe.