2011-07-20 27 views
1

我有一点问题。这是我的例子:如何解决一个不断进行的重定向过程?

file1.php:

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

file2.php:

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

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

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

任何帮助表示赞赏。

在此先感谢。

最好的问候,

阿科什

+0

这是我现在的书签。 –

+0

你是在没有条件的永远不会结束的圆形路径中,你一定会无限地旅行这个圆圈。 –

回答

2

裹在一个重定向语句,如果这样的语句:

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

您也可以检测包括像这样的东西:

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

谢谢你的答案。问题解决了。 – Akos

2

只有在file2.php重定向,如果你是不是已经在file1.php:

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

另一种可能的解决方案是使用一个标志,信号file2应该只包括:

  • 在file1.php:define('INCLUDE_MODE', true);
  • 天道酬勤file2.php:if (!INCLUDE_MODE) {header("Location: /file1.php"); exit;}
相关问题