Перенаправление заголовка PHP - PullRequest
0 голосов
/ 12 августа 2011

У меня есть класс входа в систему, посредством которого пользователь входит в базу данных, а затем я хочу, чтобы метод перенаправил пользователя на страницу своего профиля. Я надеялся использовать перенаправление header (), хотя у меня было несколько проблем с его реализацией.

Поскольку я хочу вызывать header () после запуска HTMl, он не будет перенаправлять, есть ли какой-нибудь аккуратный способ обернуть его в функцию и вызвать его, когда мне это нужно?

Ответы [ 3 ]

3 голосов
/ 12 августа 2011

Два способа:

  1. Реорганизовать свой сценарий, чтобы сначала выполнить логику (включая перенаправление header()), а затем вывести HTML-код.

  2. Буферизируйте вывод HTML и отправляйте содержимое буфера только после того, как ваша логика определит, что перенаправление не нужно.

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

1 голос
/ 12 августа 2011

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

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

0 голосов
/ 12 августа 2011

если вы хотите включить метод перенаправления header (), тогда код должен стоять перед любым тегом html, однако вы можете сделать функцию, которая будет вести себя как header (), например,

function redirect($link, $time) {
  return "<meta http-equiv='refresh' content='$time;url=$link'>";
}

, затем вызвать функциюкак

echo redirect("http://google.com", "3");

, который будет перенаправлен на google.com через 3 секунды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...