Probleme mit Benutzername oder pass mit Doppelpunkt bei der Einstellung CURLOPT_USERPWD
Wir versuchen, zu verwenden curl PHP5-login auf einer website mithilfe der Standardauthentifizierung.
Teilweise code ist wie folgt:
<?
...
$uname = "username";
$pass = "p:assword";
curl_setopt($ch,CURLOPT_USERPWD,"$uname:$pass");
...
?>
aber es scheint der Doppelpunkt in unserem Passwort-Problem verursachen.
Sind wir nicht in der Lage, das Passwort zu ändern für unsere Produktionsstätte, aber wir bestätigt, der code funktioniert auf einer anderen Seite, wo eine alphanumerische Benutzername und Passwort verwendet wird.
Gibt es eine Möglichkeit zu entkommen den Doppelpunkt in das Passwort, so curl funktioniert immer noch? Wir haben versucht, "p\\: assword" mit kein Glück.
Dank.
- Kannst du vielleicht entkommen, es mit \: ? Es scheint nicht zu sein, keine Dokumentation über diese überhaupt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
so stellt es sich heraus, dass es nicht ein problem mit dem Doppelpunkt....
es gab ein problem mit der Authentifizierung Schema.
zuerst waren wir mit:
und wechseln zu:
das problem behoben.
Unserem test mit einem anderen server hatte seine Fehler - der server war war mit IIS auf windows -, die Produktions-server auf dem wir Probleme hatten, war der apache Webserver läuft auf linux.
Ich wiederhole also: es gibt anscheinend keine Probleme bei der Verwendung von Benutzernamen oder Kennwörtern, die Doppelpunkte mit curl. dies erklärt, warum es keine Dokumentation für dieses problem.
sorry für voreilige Schlüsse zu ziehen, und danke für die Hilfe.
CURLAUTH_DIGEST
wäre die gewählte Methode intern, wie diese üblicherweise vergleicht ein hash-Wert deruser:noonce:pass
werden, weshalb eine zusätzliche Doppelpunkte keine Rolle.Ich schaute auf die Umsetzung der Extraktion von CURLOPT_USERPWD in curl-code,
Dies ist, wie Ihre getan
Es gibt eine vorwärts-searh auf die username-string passwd, auf der Suche nach dem ":" Zeichen.
Und dann username und passwd extrahiert werden (der string vor : "Benutzername" ist und die Zeichenfolge nach : ist passwd)
So, als würden Sie Ahnen, wenn der username string enthält : Zeichen -, all dies wird scheitern.
Jedoch, wie die Chancen des : Charakter wird als Teil des Benutzernamens sind deutlich weniger, das ist nicht gemeldet als bug.
Dank
Sieht es aus wie es gibt keine dokumentierte Lösung, aber Sie könnten versuchen, diese Problemumgehung:
Aber ich habe es nicht getestet..