【发布时间】:2015-01-27 21:56:16
【问题描述】:
我已阅读此内容:What does /#!/ mean in URL?,因此我知道 # 是一个片段分隔符,但我在使用 $_GET 将 URL 显示在包含 # 的后续页面上时遇到了困难。
我有一个 php 页面,它将用户输入(一个 URL)发送到显示它的另一个页面。
<?php echo $_GET["url"]; ?>
包含变量的 url 看起来像这样......
http://website.com/qr/index.php?url=http://www.example.com&many=false&set=false
http://www.example.com 显示出来。
而 url 包含这样的片段...
http://website.com/qr/index.php?url=http://www.example.com/#fragment&many=false&set=false
什么都不显示。
我无法使用 $_POST。
感谢您的帮助。
【问题讨论】:
-
其实
$_GET['url']这两种情况都应该填写,因为#在url参数后面。在第二种情况下,您将无法阅读$_GET['many']和$_GET['set'],因为它是片段的一部分(未发送到服务器 afaik),但$_GET['url']应该没问题。所以我认为错误应该在其他地方。 -
如果您将
#作为参数值的一部分传递,您必须先对其进行 URLEncode。不能将其保留为#,因为这样会将其视为此 url 的一部分,而不是参数值的一部分。 -
非编码
#后面的所有内容都不会发送到服务器
标签: php