到现在为止我只是在阅读,但现在我有了第一个问题,希望有人能帮助我。
您通过提交执行搜索:
input: Lösung? Tösung& -> url: http://127.0.0.1/?search=Lösung%3F+Tösung%26
如果您尚未登录,则我使用url_encode将搜索重定向(位置标题)以登录:
...login/return_url=http%3A%2F%2F127.0.0.1%2F%3Fsearch%3DLösung%3F+Tösung%26amp%3B
我错了' $ _GET的结果[' return_url']:
http://127.0.0.1/?search=Lösung? Tösung&
登录后和重定向后(不再重新编码网址)我得到:
url: http://127.0.0.1/?search=Lösung? Tösung& -> input: Lösung? Tösung
也许我应该重新定位以前编码网址?但是我收到错误(网址不可读?)
header("Location: ".urlencode(url)."");
如何在重定向后实现这一点,我仍然可以获得与第一个网址相同的结果,而不会像示例中那样丢失特殊字符?
也许这很简单但直到现在我没有得到正确的结果,并希望你能提供帮助。
答案 0 :(得分:3)
我认为你需要rawurlencode()
答案 1 :(得分:1)
我看到的第一件事是给出了错误的网址。 URL中$ _GET []的格式应为
http:// domain.com/index.php?myvar=var&myfoo=foo
对于页面后的第一个var,您使用'?' 对于之后的每个变量,您将它们与'&'
结合起来urlencode和urldecode修复了你的问题。
$url= "http://www.mysite.com/index.php?search=location&option=europe";
$encoded = urlencode($url);
// result: http%3A%2F%2Fwww.mysite.com%2Findex.php%3Fsearch%3Dlocation%26option%3Deurope
$decoded = urldecode($encoded);
// result: http://www.mysite.com/index.php?search=location&option=europe
使用您的网址:
$url= "http://127.0.0.1/?search=Lösung%3F+Tösung%26";
编码:
http%3A%2F%2F127.0.0.1%2F%3Fsearch%3DL%C3%B6sung%253F%2BT%C3%B6sung%2526
解码:
http://127.0.0.1/?search=Lösung%3F+Tösung%26