HTTP-сервер не отправляет заголовок ответа обратно клиенту, пока вы не укажете ошибку или не начнете отправлять данные. Если вы начнете отправлять данные обратно клиенту, то сервер должен сначала отправить заголовок ответа (который содержит код состояния). После того, как заголовок отправлен, вы больше не можете помещать код статуса в заголовок, очевидно.
Вот обычная проблема. Вы запускаете страницу и отправляете несколько начальных тегов (т. Е. <head>
). Затем сервер отправляет эти теги клиенту после первой отправки заголовка ответа HTTP с предполагаемым состоянием SUCCESS. Теперь вы начинаете работать над содержанием страницы и обнаруживаете проблему. Вы не можете отправить сообщение об ошибке, поскольку заголовок ответа, который будет содержать состояние ошибки, уже отправлен.
Решение заключается в следующем: Прежде чем создавать какой-либо контент, проверьте, не возникнут ли какие-либо ошибки. Только тогда, когда вы убедитесь, что проблем не будет, вы сможете начать отправку контента, такого как тег.
В вашем случае кажется, что у вас есть страница входа, которая обрабатывает запрос POST из формы. Вы, вероятно, выбрасываете некоторый исходный HTML, а затем проверяете правильность имени пользователя и пароля. Вместо этого вы должны сначала подтвердить подлинность пользователя / пароля, прежде чем вообще сгенерировать любой HTML.