0

如果希望单个 PHP 文件根据不同的条件重定向到不同的页面,请根据帖子的结果说..

if(condition 1) {
    header("Location: page1.php");
    exit;
}
else if(condition 2) {
    header("Location: page2.php");
    exit;
}
else {
    header("Location: page3.php");
    exit;
}
4

4 回答 4

1

绝对!

您可能希望确保没有先发送标头。你可以用headers_sent这个

if (!headers_sent()) {
  // ...
}

处理这个问题的一个好方法可能是

function redirect_to($location) {
  if (headers_sent($filename, $line)) {
    trigger_error("Headers already sent in {$filename} on line {$line}", E_USER_ERROR);
  }
  header("Location: {$location}");
  exit;
}

// you can now use it like this
if(condition 1) {
  redirect_to("page1.php");
}
else if(condition 2) {
  redirect_to("page2.php");
}
else {
  redirect_to("page3.php");
}
于 2013-07-09T18:20:49.917 回答
0

假设您的condition N if陈述是有效的,对于不同的情况使用不同的标题并没有错。

于 2013-07-09T18:17:20.567 回答
0

是的,只要在任何 header() 调用之前没有输出任何内容。

于 2013-07-09T18:17:56.357 回答
0

是的,如果您在调用该函数之前没有在页面上回显任何内容,那么这应该可以工作。只要您不在标头函数的上游打印任何内容,您就可以拥有尽可能多的 PHP。

于 2013-07-09T18:18:44.113 回答