Лучшие методы перенаправления?

В PHP-файле, когда мне нужно перенаправить пользователя, и заголовки уже отправлены, поэтому я не могу использовать функцию заголовка php, в этом случае это лучший способ перенаправления пользователя?

Самый быстрый и надежный метод, независимо от бренда браузера пользователей?

echo '<script type="text/javascript">window.top.location="http://localhost/";</script>'; // OR echo '<meta http-equiv="refresh" content="0;url=' .$location. '">'; 

ОБНОВИТЬ

Вот мой код конечного результата, который я использую сейчас, если заголовки уже отправлены там, где я не могу перенаправить на главную страницу, я просто привожу с собой главную страницу, поэтому вместо включения страницы тела она будет включать мою домашнюю страницу и нижний колонтитул

 function validlogin($url) { if (!isset($_SESSION['auto_id']) || ($_SESSION['auto_id']=='')) { $_SESSION['sess_login_msg'] = 'Please login'; $_SESSION['backurl'] = $url; $temp = ''; if (headers_sent() === false){ header("Location: /"); exit(); }else{ //header is already sent so we will just bring the homepage to us instead of going to it!!! include 'mainbody.inc.php'; include 'footer.inc.php'; exit(); } } } 

Related of "Лучшие методы перенаправления?"

 function Redirect($url, $permanent = false) { if (headers_sent() === false) { header('Location: ' . $url, true, ($permanent === true) ? 301 : 302); } exit(); } Redirect('http://www.google.com/', false); 

Опять же, используйте ob_start ();

Не используйте их! Вы всегда должны использовать перенаправления HTTP.

Используйте ob_start() для содержимого буфера и избегайте проблем с уже отправленными заголовками.

Вы также можете попытаться написать приложение MVC, где вы узнаете, нужно ли перенаправить перед выводом чего-либо (но с ob_start() который не нужен).

Piggy обратно на porneL:

Огромная проблема с вашими методами: вы убиваете кнопку «Назад». Убить кнопку «Назад» – самая раздражающая вещь в Интернете.

Я никогда не нашел необходимости перенаправлять после отправки заголовков. Вероятно, вам следует пересмотреть то, что вы пытаетесь сделать.

Я бы сказал, второй.

Если у пользователя отключен javascript или используется браузер без javascript, первая переадресация никогда не будет работать.