Чтобы превратить ваши ошибки в массив, инициализируйте его перед обработкой формы следующим образом:
$errors = array();
if (isset($_POST['Submit'])) {
...
Каждый раз, когда возникает ошибка, вместо того, чтобы объединять ее с .=
, используйте синтаксис добавления массива []
:
$errors[] = 'Please enter a message to send.';
Чтобы форма не отправлялась дважды, мы часто используем переменную в $_SESSION
, чтобы указать, что она была заполнена. При успешной отправке установите флаг $_SESSION['success']
. Не забудьте также инициализировать сеанс в начале скрипта:
session_start();
$_SESSION['success'] = FALSE;
$errors = array();
// Only process the form if the session flag isn't set:
if (isset($_POST['Submit']) && !$_SESSION['success']) {
...
// Later, on success,
echo "<p>Thank you for your email!<br/><br/></p>";
// Set the flag to prevent resubmission.
$_SESSION['success'] = TRUE;