如何修复永远重定向过程?

时间:2011-07-20 07:47:01

标签: php mysql redirect include

我有点问题。这是我的例子:

file1.php:

<?php include("file2.php"); ?>

file2.php:

<?php header("Location: file1.php"); ?>

因为包含了file2.php,重定向过程永远不会结束。但我仍然希望file2.php重定向到file1.php,我还需要在file1.php中包含file2.php。

听起来有点复杂,但我认为可以解决。

感谢任何帮助。

提前致谢。

最诚挚的问候,

阿科什

2 个答案:

答案 0 :(得分:2)

如果你还没有在file1.php上,只能在file2.php中重定向:

if ($_SERVER["REQUEST_URI"] != "/file1.php") { header("Location: /file1.php"); }

另一种可能的解决方案是使用一个标志,表示只应包含file2:

  • 在file1.php中:define('INCLUDE_MODE', true);
  • Inf file2.php:if (!INCLUDE_MODE) {header("Location: /file1.php"); exit;}

答案 1 :(得分:2)

将重定向语句包装在if语句中,如下所示:

// file2.php
<?php
if ($_SERVER['PHP_SELF'] == "file2.php") {
    header("Location: file1.php");
}
?>

您还可以使用以下内容检测包含:

if (realpath(__FILE__) == realpath($_SERVER['SCRIPT_FILENAME']) {
    // Not Included
} else {
    // Included
}