标题位置无法正常工作

时间:2012-12-28 23:08:00

标签: php header

我的网址为http://www.website.ro/index.php?subiect=10046&pag=1 #1006 ,我的表单中没有任何操作(<form action="" method="post">)。

提交后我正在检查一些输入字段,如果有任何错误,我想重定向。我使用这段代码:

header('Location: /index.php?subiect='.$_GET['subiect'].'&pag='.$_GET['pag']); exit();

但重定向包含#1006 ,因此我的网页变为http://www.website.ro/index.php?subiect=10046&pag=1 #1006

我尝试用标题更改标题中的位置:

header('Location: http://www.google.com'); exit();

我的页面是:http://www.google.com #1006

为什么会这样做?

我在第一行有ob_start(),我试图将其删除。没有效果。重定向stil后的网址#1006

如果我的网址是http://www.website.ro/index.php?subiect=10046&pag=1并且我使用标头位置我没有问题,但如果网址包含#1006重定向后的网址包含。

1 个答案:

答案 0 :(得分:3)

#之后的部分称为片段标识符,并标识页面的一部分,即使该页面是从其他网址检索的。

默认情况下,无论使用何种状态代码,大多数浏览器都会在发生3xx重定向时保留片段标识符。有关此事的若干资源,请参阅URL Fragment and 302 redirects

您可以返回包含片段标识符本身的URI(即使是空的):

header('Location: http://www.google.com/#');

然后将使用this draft中指定的那个:

  

例外情况是返回的URI已经有一个片段   标识符。在这种情况下,原始片段标识符绝不可以   没有添加到它。

您还可以使用Javascript更改片段标识onclick