У меня есть форма heredoc (показано ниже) внутри addToDb.php. Форма отправляется обратно в addToDb.php, когда пользователь нажимает кнопку отправки в форме (кнопка «ADD RECORD» в форме ниже).heredoc, мешающий заголовку() в столбце Post/Redirect/Get
После проверки того, что у меня есть хорошие данные в форме, я добавляю данные в свою базу данных и использую заголовок() для перенаправления 303 (это моя первая попытка использовать пост/перенаправление/получение).
Я получаю сообщение об ошибке:
«Предупреждение: Не удается изменить информацию в заголовке - заголовки уже прислал (выход начался в C: \ XAMPP \ HTDOCS \ Foo \ addToDb.php: 165) в C: \ XAMPP \ HTDOCS \ Foo \ addToDb.php в строке 129 и в C: \ XAMPP \ HTDOCS \ Foo \ addToDb.php на линии 130"
echo <<<_END
<h1>Please add a new student....</h1>
<p>Fields with an asterisk (*) are required fields.</p>
<form action="addToDb.php" method="post">
<b><i>First name *</b></i> : <input type="text" name=$firstNameLabel /><br />
Middle initial : <input type="text" name=$middleInitialLabel /><br />
<b><i>Last name *</b></i> : <input type="text" name=$lastNameLabel /><br />
<b><i>School*</i></b> : <input type="text" name=$schoolLabel size=40/><br />
Grade: <input type="text" name=$gradeLabel /><br />
<b><i>Email *</b></i> : <input type="text" name=$emailLabel size=40 /><br />
<input type="submit" name="addrecord" value="ADD RECORD" /><br />
</form>
_END;
* (Примечание: выше _END, который закрывает Heredoc, появляется в строке 165 в addToDb.php - эта строка 165 упоминается в сообщении об ошибке, которое я получаю.) *
Итак, когда кнопка отправки «ADD RECORD» нажата, снова вводится тот же файл addToDb.php и снова отображается тот же вид, что и выше.
Когда addToDb.php повторно введен из-за представить, проверить наличие действительных данных формы, поставляемые пользователем и сохранить в базе данных, если это действительные данные и вызвать заголовок() следующим образом:
// check for valid form data and add to the database, then redirect now.........
header("HTTP/1.1 303 See Other");
header("Location: http://localhost/foo/index.php");
exit();
(Примечание: два вызова в заголовок выше появляются на линиях 129 и 130 в addToDb.php)
Так вот что происходит:
- я заполнить форму с действительными данными
- толчка «Добавить запись»
- то форма повторно отображается как я повторно ввести addToDb.php
- моей запись успешно добавляются в базу данных, но. .....
- Я не вижу index.php в браузере, я все еще вижу addToDb.php
- и я получаю сообщение об ошибке, как описано выше, и повторяющееся ниже:
«Предупреждение: Невозможно изменить информацию заголовка - заголовки уже (вывод начинается с C: \ xampp \ htdocs \ foo \ addToDb.php: 165) в C: \ xampp \ htdocs \ foo \ addToDb.php в строке 129 и в C: \ xampp \ htdocs \ foo \ addToDb. php on line 130 "
Я использовал метод heredoc в прошлом без проблем.
Но это первый раз в жизни, я пытаюсь реализовать Post/Redirect/Get.
Итак - это heredoc как-то мешает моей PRG?
Это сделало меня. Благодарю. Как только я удалил все отладочное эхо и весь другой выход, перенаправление работало с индексом index.php. Мне даже пришлось удалить вызов var_dump(). – wantTheBest
Рад помочь. :) – vdbuilder