Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
 
Ответить в данную темуНачать новую тему
> Форма обратной связи
umad
сообщение 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>


Брал отсюда http://shpargalkablog.ru/2014/05/feedback-form-file.html
Форма вроде реагирует, но скрипт не работает - письмо на почту не приходит, свой адрес в скрипте я вставлял.
В чем причина - не знаю, нагуглил, что зачастую PHPшный mail() отключают ради безопасности, может, причина в этом? Или я что-то делаю не так...Мои познания в указанных языках - полный ноль, потому прошу вашей помощи. Если найдется кто-то, кто подскажет пути решения, или напишет рабочий скрипт, отблагодарю деньгой на телефон или игрушкой в Стиме rolleyes.gif
Заранее спасибо.

Сообщение отредактировал umad - 03.03.2015, 21:08
Перейти в начало страницы
 
Avel
сообщение 03.03.2015, 21:22
Сообщение #2


Indie! Fuck yEah!
**********************

Репутация:   1439  
Группа: Участник
Сообщений: 5601
Награды: 11
Регистрация: 04.06.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


umad, для начала проверь, работает ли сама простая отправка через mail
Создай mail.php , внутри пропиши
CODE
<?
mail("ТВОЯ_ПОЧТАl@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
?>

И дерни его.

Нет письма - значит хостер заблочил отправку. Ищи на хостинге dead.letter , там вся дохлая почта будет валяться в этом случае.

Сообщение отредактировал Avel - 03.03.2015, 21:23


--------------------
Перейти в начало страницы
 
umad
сообщение 03.03.2015, 21:29
Сообщение #3


Продвинутый геймер
********

Репутация:   33  
Группа: Участник
Сообщений: 251
Награды: 2
Регистрация: 03.04.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Avel @ 04.03.2015, 04:17) *
Нет письма - значит хостер заблочил отправку. Ищи на хостинге dead.letter , там вся дохлая почта будет валяться в этом случае.


Письмо пришло на ящик. Значит, отправка не заблокирована?

Сообщение отредактировал umad - 03.03.2015, 21:34
Перейти в начало страницы
 
umad
сообщение 04.03.2015, 09:25
Сообщение #4


Продвинутый геймер
********

Репутация:   33  
Группа: Участник
Сообщений: 251
Награды: 2
Регистрация: 03.04.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Актуально rolleyes.gif
Перейти в начало страницы
 

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 14.06.2024, 19:37