Ist ok, urlencode der Wert im header(Location: Wert)?
Dies ist die PHP.
Ich tun
header("Location: " . $url)
und funktioniert Super. Aber Wenn ich
header("Location: " . urlencode($url))
Bin ich umgeleitet auf einige seltsame Ort wie $url/$url, das gibt mir eine 404 -, natürlich.
Aber ich möchte meine url urlencode, da Sie aus Nutzer zur Verfügung gestellten Daten. Wie kann ich es tun? Ich breche es un - "http://" und "der rest" und nur urlencode "der rest"?
Welche ist die empfohlene Praxis, in dieser situation?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung ist nicht Kodieren Sie die vollständige URL, codieren nur die bits, die kodiert werden müssen. Nur die Kodierung der "rest" ist zum scheitern verurteilt, wie gut. In diesem Beispiel zum Beispiel, alle Schrägstriche, die
?
und die=
müssen bleiben intakt:aber Sie brauchen, um zu Kodieren
rewritten directory
undHello World, how are you?
um für die ganze Sache form einer gültigen URL.
Wie mit Zeichenkodierungen, müssen Sie sicherstellen, dass von Anfang an wissen, was codiert ist, wie. Die Lösung für dein problem (wenn es denn eine gibt -
header()
ist wahrscheinlich zu arbeiten, ohne urlencode() in der ersten Stelle!) wahrscheinlich ist weiter oben im code.Brechen Sie die URL in das "http://" und "dem rest", wie du vorgeschlagen hast, siehe PHP
parse_url()
undparse_str()
Funktionen.EDIT: dies wird vorausgesetzt, Sie wissen, was die querystring-Parameter, e.g
param1, param2