如何在没有标题重定向的情况下将用户发送到另一个网址?

时间:2011-10-12 20:51:51

标签: php redirect

我正在学习PHP并且一直在寻找这个。我想要实现的是这样的:

if (true/false) {
    go to this url;
}

每次我搜索php重定向或php链接等术语时,99%的时间我会收到“标题”。我读到头重定向可以实现这一点,但没有代码可以在它之前,它必须首先在页面上,否则它不会工作。

如果是这样,那么我该如何实现呢?

3 个答案:

答案 0 :(得分:8)

  

我读到头重定向可以实现这一点,但没有代码可以在它之前。它必须首先在页面上,否则它将无法工作。

那是错的。在此之前必须没有输出。因此,您必须确保之前没有echoprint?>something<?php(或其他)任何事情。

if (true)  {
  header('Location: ' . $url, false, 302);
  exit; // Ensures, that there is no code _after_ the redirect executed
}

您可以准备好所有内容about it in the official manual。特别是:

  

请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用include()或require(),函数或其他文件访问函数读取代码是一个非常常见的错误,并且在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。

答案 1 :(得分:5)

echo '<script type="text/javascript"> document.location = "http://yoururl.com";</script>'

这将在脚本的这部分执行时执行。

答案 2 :(得分:0)

如果您需要在重定向之前输出一些输出,可以使用此功能:

header("refresh: $time_in_seconds; url=$your_url);

您仍然必须在实际发送输出之前调用此方法。发送标题,然后发送您的输出 - 页面将在指定的时间内“重定向”。

免责声明:我必须承认,我不确定这是什么含义,也无法找到它的文档,所以我不一定会推荐它 - 但我可以验证它有效。

相关问题