Как обрабатывать перенаправления для моей страницы входа PHP - PullRequest
0 голосов
/ 20 октября 2018

Я недавно перешел с localhost на мой живой сайт.У меня есть простая страница входа в PHP.После того, как сведения о пользователях проверены моей таблицей mysql, и если имя пользователя существует, и они предоставляют действительный пароль для этого имени пользователя, они перенаправляются на домашнюю страницу.Я использовал функцию заголовка, встроенную в PHP, но теперь, когда я нахожусь на своем живом веб-сайте, это больше не работает.

После дальнейших исследований кажется, что я не могу использовать теги заголовка после загрузки страницы.Поэтому я не отображаю теги скрипта для window.location перенаправления на мою домашнюю страницу.Проблема заключается в том, что когда новое местоположение перенаправляется на него, оно выглядит как загрузка дополнительных веб-страниц перед моей реальной веб-страницей, на которую я хочу перейти ((Возможно, это связано с тем, что яиметь дополнительный код обработки ошибок, который выполняется после факта).Кто-нибудь еще испытывает это при использовании этого метода?Есть ли лучший способ справиться с этим?

Это то, что я использую в настоящее время на всякий случай, если есть путаница

echo '<script>window.location.href = "home.php";</script>';

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Я недавно узнал, что вы можете сделать это с метатегом: <meta http-equiv="refresh" content="2;url=http://example.com/" />

0 голосов
/ 20 октября 2018

Я использовал встроенную в PHP функцию заголовка, но теперь, когда я нахожусь на своем живом веб-сайте, она, похоже, больше не работает.

Заголовки должны быть первой вещью, котораяваш скрипт выводит или они не будут работать.В PHP есть удобная функция, называемая буферизация вывода , которая временно задерживает вывод до завершения сценария.Это позволяет вам помещать вызовы на header() в любом месте вашего кода, и тогда PHP автоматически позаботится о перемещении заголовков в начало вывода для вас.Таким образом, если у вас включена выходная буферизация, вы можете разместить заголовки в любом месте, и это все равно будет работать.Если у вас не включена выходная буферизация, вы должны поставить заголовки в самом начале.

Держу пари, что вы генерируете выходные данные до заголовков, и в вашей локальной установке PHP включена буферизация вывода, пока ваш удаленный хостне.Это можно исправить одним из двух способов:

  • Обновите свой код, чтобы убедиться, что ничего не выводится до вызова header().
  • Включите буферизацию вывода на вашем хосте, установив output_buffering = 1 в вашем php.ini.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...