PHP - перенаправить только один раз - PullRequest
0 голосов
/ 24 марта 2012

Как я могу заставить header("Location: /path"); перенаправить только один раз?

Курс у меня есть:

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

Этот скрипт проверен в моем заголовочном файле. Но это не работает, так как он просто создаст перенаправление цикла (бесконечный цикл)

Как это сделать, чтобы он только один раз перенаправлял?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Это просто, но немного уродливо ...

//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.

0 голосов
/ 24 марта 2012
if($userdata['account_locked']  == 1 && $_SERVER['HTTP_REFERER'] != 'http://'.$_SERVER['HTTP_HOST'].'/account/locked'):
    header("Location: /account/locked");
endif;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...