Как я могу перенаправить на основе условия в php?

#php #redirect

#php #перенаправление

Вопрос:

У меня есть некоторый код, который выполняет действия на основе заданного условия:

  if ($_SERVER['REQUEST_METHOD'] != "POST"){

  #some kind of redirect to another page

 }

 else{

 #execute  code based on the post data
 #and then redirect to another page after it has finished
 }
  

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

Комментарии:

1. Назначьте URL в шаблоне и выполните перенаправление js.

2. почему вы не можете переместить эту часть кода в начало скрипта перед отправкой любого вывода? Приведенный ниже ответ с помощью header () является наиболее логичным способом сделать это только для php.

3. Исправьте свой код, чтобы это было первое, что видит браузер

4. на самом деле на этой странице есть только php, но он продолжал выдавать мне эту ошибку: Предупреждение: Невозможно изменить информацию о заголовке — заголовки, уже отправленные (вывод начат в / home / ind.php: 2) в /home/ind.php в строке 4

5. люди просто отмечают вас, когда не знают ответа? Я не знаю, насколько более ясным и простым я мог бы быть. В любом случае, идея JS работает для меня, поэтому я воспользуюсь ею. Спасибо.

Ответ №1:

Не могли бы вы использовать ob_flush?

Возможно, в заголовок уже выводится что-то еще?

Ответ №2:

Я столкнулся с этой же проблемой и зашел так далеко, что использовал jquery / ajax для выполнения страницы и после .success (метод jquery / ajax) назначил окно.location.assign(‘localhost/yadayad.php ‘). Затем я обнаружил, что гораздо проще просто отобразить окно JavaScript.команда location.assign в моем php-файле.

 //user_signup.php
if($_SESSION['user_completed_this_form_already'] == 'complete'){
     echo "<script>window.location.assign('localhost/yadayad.php');</script>";
} 
  

этот метод работал довольно хорошо для меня.