Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php位置重定向和特殊字符_Php_Redirect_Get_Urlencode - Fatal编程技术网

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