PHP - 仅重定向一次

时间:2012-03-24 11:32:02

标签: php redirect

如何让header("Location: /path");仅重定向一次?

Currenlty我有这个:

//If account is locked by user.
if($userdata['account_locked']  == 1):
    header("Location: /account/locked");
endif;

在我的头文件中检查此脚本。但它不起作用,因为它只会创建一个循环重定向(无限循环)

我该怎么做,所以它只重定向一次?

提前致谢。

2 个答案:

答案 0 :(得分:1)

这很简单,但有点难看......

//If account is locked by user.
if($userdata['account_locked']  == 1):
    if ($_SERVER['REQUEST_URI'] != "/account/locked") header("Location: /account/locked");
endif;

你应该使用MVC,控制器应该知道循环。

EDITED 最好使用

$_SERVER['PHP_SELF']

而不是

$_SERVER['REQUEST_URI'].

编辑:从URL更改为URI。

答案 1 :(得分:0)

if($userdata['account_locked']  == 1 && $_SERVER['HTTP_REFERER'] != 'http://'.$_SERVER['HTTP_HOST'].'/account/locked'):
    header("Location: /account/locked");
endif;