У меня есть форма heredoc (показана ниже) внутри addToDb.php.Форма отправляется обратно в addToDb.php, когда пользователь нажимает кнопку отправки на форме (кнопка «ДОБАВИТЬ ЗАПИСЬ» в форме ниже).
Убедившись, что у меня все в порядке с данными, я добавляю данные в свою базу данных и использую перенаправление header () на 303 (это моя первая попытка использовать post / redirect / get).
Я получаю сообщение об ошибке:
"Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с 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 из-за отправки я проверяю действительные данные формы, предоставленные пользователеми сохраните в базу данных, если это действительные данные, и вызовите header () следующим образом:
// 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();
(ПРИМЕЧАНИЕ: tДва вышеупомянутых вызова заголовка появляются в строках 129 и 130 в addToDb.php)
Итак, вот что происходит:
- Я заполняю форму действительнымdata
- нажмите «ADD RECORD»
- , после чего форма будет отображаться заново при повторном вводе 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 в строке 130 "
В прошлом я использовал подход heredoc без проблем.
Но этоЯ впервые в жизни пытаюсь реализовать Post / Redirect / Get.
Итак, каким образом heredoc как-то мешает моей PRG?