php位置重定向和特殊字符
到目前为止,我只是在阅读,但现在我有我的第一个问题,希望有人能帮助我 您可以通过提交执行搜索:php位置重定向和特殊字符,php,redirect,get,urlencode,Php,Redirect,Get,Urlencode,到目前为止,我只是在阅读,但现在我有我的第一个问题,希望有人能帮助我 您可以通过提交执行搜索: 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%
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
我对$\u get['return\u url']得到了“错误”的结果:
http://127.0.0.1/?search=Lösung? Tösung&
登录并重定向(不再编码url)后,我得到:
也许我应该在之前用编码url重定向?但是我得到一个错误(url不可读?)
在重定向后,我如何才能获得与第一个url相同的结果,而不会丢失示例中的特殊字符
也许这很简单,但直到现在我还没有得到正确的结果,希望你能帮助我。我想你需要的是我看到的第一件事是给出了错误的url。 URL中$\u GET[]的格式应为
http:// domain.com/index.php?myvar=var&myfoo=foo
对于页面后的第一个变量,使用“?”
对于之后的每个var,您将它们与'&
urlencode和URDECODE修复了您的字符问题
$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:
$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
嗯,在哪一点上我应该使用它,也许你可以更具体一点?它根据RFC 3986对给定的字符串进行编码,所以我认为不仅仅像
?
,=
,
,[
和]
这样的字符会被编码,但不是a-zA-Z0-9的所有字符都会被编码。啊,好的,但这不起作用。同样的结果,缺少字符,重定向rawurlencoded url也会得到一个错误。Hmmm,也许当您使用查询字符串时,尝试创建整个url。我看不出有什么不同。我在searchsite上进行urlencode,然后在登录时解码,重定向头('location'encodedurl)仍然会出错。所以你必须对Ö进行编码并保留?而且&就这样。最终结果应为:。将其用作原始字符串。然后URL编码/解码以使用它。重定向应转到带有Öas%F6的原始字符串。可能一种方法是提取部分?search=并仅编码Lösung?Tösung&,但我怎么能做到呢。
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