This is an old revision of the document!
Для добавления полей:
По умолчанию обработчик после неуспешной отправки(при незаполненных полях) должен после перезагрузки вернуть все заполненные данные снова в форму. Если этого не происходит, значит есть какая-то ошибка в скриптах на сайте.
<h1>Обратная связь</h1> <form action="." method="post" id="callback_form" enctype="multipart/form-data" name="form"> <table class="link_table"> <tbody> <tr> <td align="left" valign="middle"><strong>Ваше имя<span class="style9"> *</span>:</strong></td> <td><input id="name" name="name" size="40" type="text" /></td> </tr> <tr> <td align="left" valign="middle"><strong>Ваш телефон:</strong></td> <td><input id="age" name="tel" size="40" type="text" /></td> </tr> <tr> <td align="left" valign="top"><strong>Вопрос<span class="style9"> *</span>:</strong></td> <td><textarea id="comments" cols="35" rows="7" name="mess"></textarea> <input id="confirm" name="confirm" type="hidden" value="yes" /></td> <tr> <td></td> <td align="left" valign="top"><strong><input type="submit" value="Отправить" name="submit"></span></strong></td> </tr> </tbody> </table> <p><strong class="style9">*</strong> — поля, обязательные для заполнения.</p> </form> <?php /** * Отправка писем 5 * * @author Kuts Artem, KAD Systems (©) 2015 * @date 03-07-2015 * Начало >> */ // Имя формы $formName = "form"; // Название поля-ключа отправки или кнопки отправки $keyName = "submit"; // Тема письма $subject = "Заявка"; // Получатель $form_email_to = FORM_EMAIL_TO; // Отправитель $form_email_from = FORM_EMAIL_FROM; // Массив полей, второе значение - флаг валидации $aFields = array('name' => 1, 'tel' => 0, 'mess' => 1); // Шаблон контента $content = "Имя {name} <br/> Телефон {tel} <br/> E-mail {email} <br/> Сообщение {mess} <br/>"; // Временная директория для размещения загруженных файлов $filesTmpPath = "upload/"; // Сообщения $aMessages = array( 'success' => 'Спасибо! Ваша заявка принята!', 'error_ff' => 'Пожалуйста, проверьте правильность заполнения полей!' ); $valid = TRUE; if (isset($_POST[$keyName])) { foreach ($aFields as $field => $req) { if ($req && (isset($_POST[$field]) && mb_strlen($_POST[$field]) < 1)) { $valid = FALSE; break; } $content = str_replace('{'.$field.'}', $_POST[$field], $content); } if ($valid) { $headers = "From: " . $form_email_from . "\r\n"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=utf-8\r\n"; // Отправляем if (@mail($form_email_to, $subject, $content, $headers)) { $message = $aMessages['success']; } } else { $message = $aMessages['error_ff']; ?> <script> <?php foreach ($aFields as $field => $req) { echo $formName . "."; echo $field . ".value = \""; echo $_POST[$field] . "\";" . " "; } ?> </script> <?php } if (isset($message)) {?> <script> alert("<?php echo $message;?>"); <? if ($valid) { ?> // Раскомментить, если после отправки нужно вернуться на главную document.location = "/"; <? } ?> </script> <?php } } ?>