|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.09.2018, 16:45 | #1 |
Новичок
Джуниор
Регистрация: 24.09.2018
Сообщений: 1
|
Форма с возможностью отправки файлов
Здравствуйте! Помогите, пожалуйста, разобраться в проблеме. Есть форма на сайте, предназначенная для заполнения клиентом. Можно прикрепить свои файлы. При нажатии на кнопку отправить файлы благополучно отправляются на указанную почту. На первый взгляд все работает, но есть нюансы:
1. После нажатия кнопки ничего не происходит. Введенные данные так и остаются в полях. Как перенаправить пользователя на другую страницу после успешной отправки данных? И как оставить пользователя на этой же странице с появлением подписи ниже о неудачной отправке? 2. Не работают заданные в php коде условия: если загружаемые файлы больше определенного размера, то ничего не происходит. 3. Очень хотелось бы избавиться от всплывающего окна с подтверждением отправки. 4. На почте в заголовке приходит корейский нечитаемый шрифт, хотя в <head> прописала <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">. Как сделать нормальный шрифт в заголовке приходящего письма? Два скриншота прилагаю. Буду очень признательна за помощь Вот код html: <form enctype="multipart/form-data" method="post" id="feedback-form"> <label for="nameFF">Имя:</label> <input type="text" name="nameFF" id="nameFF" required placeholder="Введите Имя" x-autocompletetype="name" class="w100 border"> <label for="contactFF">Электронная почта:</label> <input type="email" name="contactFF" id="contactFF" required placeholder="Введите адрес электронной почты" x-autocompletetype="email" class="w100 border"> <label for="phone">Введите номер телефона</label> <input type="text" name="phone" id="phone" required placeholder="Введите свой номер телефона" class="w100 border"> <label for="fileFF">Прикрепить файл:</label> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100"> <label for="messageFF">Заказ:</label> <textarea name="messageFF" id="messageFF" required rows="5" placeholder="Детали заявки…" class="w100 border"></textarea> <br> <input value="Отправить" type="submit" id="submitFF"> </form> <script> document.getElementById('feedback-form').addEventListener('submit', function (evt) { var http = new XMLHttpRequest(), f = this; evt.preventDefault(); http.open("POST", "assets/contacts.php", true); http.onreadystatechange = function () { if (http.readyState == 4 && http.status == 200) { alert(http.responseText); if (http.responseText.indexOf(f.nameFF .value) == 0) { // очистить поле сообщения, если в ответе первым словом будет имя отправителя f.messageFF.removeAttribute('value' ); f.messageFF.value = ''; } } } http.onerror = function () { alert('Извините, данные не были переданы'); } http.send(new FormData(f)); }, false); </script> Вот php код: <?php if (isset($_POST['contactFF'])) { $to = "work@printnik.ru"; // поменять на свой электронный адрес $from = $_POST['contactFF']; $subject = "New order" . $_SERVER['HTTP_REFERER']; $message = "Name: " . $_POST['nameFF'] . "\n Email: " . $from . "\nIP: " . $_SERVER['REMOTE_ADDR'] . "\n Order: " . $_POST['messageFF'] . "\n Phone number: " . $_POST['phone']; $boundary = md5(date('r', time())); $filesize = ''; $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: " . $from . "\r\n"; $headers .= "Reply-To: " . $from . "\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; $message = " Content-Type: multipart/mixed; boundary=\"$boundary\" --$boundary Content-Type: text/plain; charset=\"utf-8\" Content-Transfer-Encoding: 7bit $message"; for ($i = 0; $i < count($_FILES['fileFF']['name']); $i++) { if (is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) { $attachment = chunk_split(base64_encode(file_get_ contents($_FILES['fileFF']['tmp_name'][$i]))); $filename = $_FILES['fileFF']['name'][$i]; $filetype = $_FILES['fileFF']['type'][$i]; $filesize += $_FILES['fileFF']['size'][$i]; $message.=" --$boundary Content-Type: \"$filetype\"; name=\"$filename\" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=\"$filename\" $attachment"; } } $message.=" --$boundary--"; if ($filesize < 100000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ mail($to, $subject, $message, $headers); echo $_POST['nameFF'] . ', Ваше сообщение получено, спасибо!'; } else { echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.'; } } ?> |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
форма отправки сообщений | dimahdc | HTML и CSS | 1 | 20.12.2016 10:08 |
Форма отправки сообщения | starichenko | HTML и CSS | 5 | 26.05.2011 14:52 |
Форма отправки заказа | zlo_999 | JavaScript, Ajax | 0 | 26.01.2011 17:43 |
Форма отправки e-mail | Черничный | PHP | 7 | 11.11.2008 03:36 |
форма отправки данных с функцией прикрепления файлов | zetrix | PHP | 0 | 29.10.2006 20:24 |