PHP - Работа с POST и заголовком включает - PullRequest
0 голосов
/ 22 сентября 2011

Скажем, у меня есть форма, в которой пользователь может войти в систему, и когда пользователь заполняет форму, которую он отправляет обратно на ту же страницу, проверяет ошибки с именем пользователя и паролем и регистрирует пользователя, если все хорошо. На данный момент я делаю это, загружая форму в следующих условиях:

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

и если это не так, то проверьте ошибки и войдите в систему и т. Д.

Проблема в том, что все это происходит в signin.php. В верхней части signin.php я включаю header.php и connect.php, которые делают именно то, что предлагают их имена. Когда я возвращаюсь на страницу, изменения в статусе входа не отображаются в заголовочном файле (в этом файле есть пользовательская панель, по своей природе похожая на панель на этом сайте). Вход работает, но мне нужно перейти на другую страницу, чтобы заголовок отображал «вход в систему» ​​вместо «вход / регистрация» или что-либо подобное.

Неправильно ли я поступил по этому поводу, или мне просто нужно добавить что-то, чтобы обновить заголовок? Приветствия.

P.S .: Я довольно новичок в php, поэтому что-то не слишком сложное было бы предпочтительным, пожалуйста.

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Возможно, вам нужно перенаправить (используя header () ) после того, как POST-код произойдет:

if($_SERVER['REQUEST_METHOD'] != 'POST') {
    ..
}
else {
    ..
    header('Location: ' . basename($_SERVER['REQUEST_URI']));
    exit;
}
1 голос
/ 22 сентября 2011

есть 2 проблемы с вашей настройкой, нарушающие очень простые, но строгие правила веб-разработки

  1. После любого запроса POST должен быть перенаправлен.Может быть сделано, как показано в другом ответе.
  2. Перед выполнением всей логики HTML-код не должен отображаться.Таким образом, ваш header.php должен называться ПОСЛЕ проверки формы, а не перед ней.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...