Problèmes avec un nom d'utilisateur ou passer du côlon lors de la configuration de CURLOPT_USERPWD
Nous essayons d'utiliser curl en PHP5 pour vous connecter à un site web à l'aide de l'authentification de base.
Partielle code comme ceci:
<?
...
$uname = "username";
$pass = "p:assword";
curl_setopt($ch,CURLOPT_USERPWD,"$uname:$pass");
...
?>
mais il semble que le colon dans notre mot de passe est la cause du problème.
Nous sommes incapables de changer le mot de passe pour notre site de production, mais nous a confirmé que le code fonctionne très bien sur un autre site où alphanumérique nom d'utilisateur et le mot de passe est utilisé.
Est-il un moyen de s'échapper du colon dans le mot de passe afin curl fonctionne toujours? Nous avons essayé "p\:assword" avec pas de chance.
Grâce.
Vous pouvez peut-être échapper avec \: ? Il ne semble pas être de toute la documentation à ce sujet.
OriginalL'auteur jaminto | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
ainsi, il s'avère que ce n'était pas un problème avec le colon....
c'était un problème avec le schéma d'authentification.
au départ, nous étions à l'aide de:
et l'évolution de:
résolu le problème.
Notre test sur un autre serveur avait ses défauts - le serveur qui a travaillé était exécutant IIS sur windows, le serveur de production nous ont des problèmes a été de lancer apache sur linux.
Donc je me répète: il n'y a apparemment pas de problèmes avec l'utilisation de noms d'utilisateur ou des mots de passe qui contiennent des colons avec curl. c'est ce qui explique pourquoi il n'y aurait pas de documentation de ce problème.
désolé pour sauter aux conclusions, et merci pour l'aide.
CURLAUTH_DIGEST
serait la méthode choisie en interne, comme c'est souvent le compare une valeur de hachage de lauser:noonce:pass
, faire toutes les deux points supplémentaires sans conséquence.OriginalL'auteur jaminto
J'ai regardé jusqu'à la mise en œuvre de l'extraction de CURLOPT_USERPWD en curl code,
C'est la façon dont c'est fait
Il y a un avant searh sur le nom d'utilisateur-mot de passe de la chaîne, à la recherche pour le caractère":".
Et puis nom d'utilisateur et mot de passe sont extraits (la chaîne avant : est le nom d'utilisateur et de la chaîne après : passwd)
Donc, comme vous l'auriez deviné, si la chaîne du nom d'utilisateur contient un caractère:, tout cela va à l'échec.
Cependant, comme les chances de caractère : dans le cadre du nom d'utilisateur sont beaucoup moins, ce n'est pas signalé comme un bug.
grâce
OriginalL'auteur binithb
Il semble comme il n'y a pas encore de solution, mais vous pouvez essayer cette solution de contournement:
Mais je ne l'ai pas testé..
OriginalL'auteur opHASnoNAME