Форма обратной связи |
Здравствуйте, гость ( Авторизация | Регистрация )
Форма обратной связи |
03.03.2015, 20:57
Сообщение
#1
|
|
Продвинутый геймер Репутация: 33 Группа: Участник Сообщений: 251 Награды: 2 Регистрация: 03.04.2014 |
Доброго времени суток.
Решил запилить простенький сайт на Parallels Presence Builder 11.5. Дело дошло до контактной формы, в конструкторе есть собственный модуль, но мне необходима возможность прикреплять файлы, которой в нем нет. Нашел в сети вот такой PHP-скрипт в обвязке HTML-формы: CODE <?php if (isset ($_POST['contactFF'])) { $to = "name@yandex.ru"; // поменять на свой адрес $from = $_POST['contactFF']; $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER']; $message = "Имя: ".$_POST['nameFF']."\nEmail: ".$from."\nIP: ".$_SERVER['REMOTE_ADDR']."\nСообщение: ".$_POST['messageFF']; $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 < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ mail($to, $subject, $message, $headers); $output = '<script>alert("Ваше сообщение получено, спасибо!");</script>'; } else { $output = '<script>alert("Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.");</script>'; } } ?> <!DOCTYPE HTML> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Контактная форма</title> <style> #feedback-form { /* вся форма */ max-width: 550px; padding: 2%; border-radius: 3px; background: #f1f1f1; } #feedback-form label { /* наименование полей */ float: left; display: block; clear: right; } #feedback-form .w100 { /* поля */ float: right; max-width: 400px; width: 97%; margin-bottom: 1em; padding: 1.5%; } #feedback-form .border { /* граница полей */ border-radius: 1px; border-width: 1px; border-style: solid; border-color: #C0C0C0 #D9D9D9 #D9D9D9; box-shadow: 0 1px 1px rgba(255,255,255,.5), 0 1px 1px rgba(0,0,0,.1) inset; } #feedback-form .border:focus { outline: none; border-color: #abd9f1 #bfe3f7 #bfe3f7; } #feedback-form .border:hover { border-color: #7eb4ea #97cdea #97cdea; } #feedback-form .border:focus::-moz-placeholder { /* убрать при фокусе первоначальный текст поля */ color: transparent; } #feedback-form .border:focus::-webkit-input-placeholder { color: transparent; } #feedback-form .border:not(:focus):not(:hover):valid { /* правильно заполненные поля */ opacity: .8; } #submitFF { /* кнопка "Отправить" */ padding: 2%; border: none; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.2) inset; background: #669acc; color: #fff; } #feedback-form br { height: 0; clear: both; } #submitFF:hover { background: #5c90c2; } #submitFF:focus { box-shadow: 0 1px 1px #fff, inset 0 1px 2px rgba(0,0,0,.8), inset 0 -1px 0 rgba(0,0,0,.05); } </style> <?php echo $output; ?> <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">Email:</label> <input type="email" name="contactFF" id="contactFF" required placeholder="например, ivan@yandex.ru" x-autocompletetype="email" 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> Брал отсюда Форма вроде реагирует, но скрипт не работает - письмо на почту не приходит, свой адрес в скрипте я вставлял. В чем причина - не знаю, нагуглил, что зачастую PHPшный mail() отключают ради безопасности, может, причина в этом? Или я что-то делаю не так...Мои познания в указанных языках - полный ноль, потому прошу вашей помощи. Если найдется кто-то, кто подскажет пути решения, или напишет рабочий скрипт, отблагодарю деньгой на телефон или игрушкой в Стиме Заранее спасибо. Сообщение отредактировал umad - 03.03.2015, 21:08 |
 
|
|
|
|
03.03.2015, 21:22
Сообщение
#2
|
|
Indie! Fuck yEah! Репутация: 1439 Группа: Участник Сообщений: 5601 Награды: 11 Регистрация: 04.06.2007 |
umad, для начала проверь, работает ли сама простая
Создай mail.php , внутри пропиши CODE <? mail("ТВОЯ_ПОЧТАl@example.com", "My Subject", "Line 1\nLine 2\nLine 3"); ?> И дерни его. Нет письма - значит хостер заблочил отправку. Ищи на хостинге dead.letter , там вся дохлая почта будет валяться в этом случае. Сообщение отредактировал Avel - 03.03.2015, 21:23 -------------------- |
 
|
|
03.03.2015, 21:29
Сообщение
#3
|
|
Продвинутый геймер Репутация: 33 Группа: Участник Сообщений: 251 Награды: 2 Регистрация: 03.04.2014 |
|
 
|
|
04.03.2015, 09:25
Сообщение
#4
|
|
Продвинутый геймер Репутация: 33 Группа: Участник Сообщений: 251 Награды: 2 Регистрация: 03.04.2014 |
Актуально
|
 
|
|
Текстовая версия | Сейчас: 14.06.2024, 19:37 |