Показать сообщение отдельно
  #2 (permalink)  
Старый 29.07.2015, 00:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Что вам подсовывают в поле email, нужно обязательно проверять на сервере, проверка на клиенте, это сервис для него не более того.

$subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER']; - на тему почтового отправления не влияет указываемая в заголовках (кстати вы его не передаете) кодировка, и оно может быть отображено почтовым сервером или клиентом как душе угодно, этот параметр нужно кодировать:

$subject = '=?utf-8?b?' . base64_encode("Заполнена контактная форма с ".$_SERVER['HTTP_REFERER']) . '?=';

как подвергают такой кодировке и поле From.

$attachment = chunk_split(base64_encode(file_get_contents($_FILE S['fileFF']['tmp_name'][$i]))); - загрузку файлов нужно не с этого начинать, а с проверки загружен ли файл вообще, то есть нет ли ошибки в ключе $_FILES['fileFF']['error'].

Загружать тело файла функцией file_get_contents() не стоит, открывайте файл на чтение.

if ($filesize < 10000000) { // проверка на общий размер всех файлов. - это нужно проверять до формирования почтового отправления, ибо, если размер превышает допустимое, то впустую будет потрачено и время, и ресурсы, да и пользователя по этому вопросу вы оставляете в неведении. Если у вас РНР версии не ниже 5.5, то это можно сделать функцией array_column(), если ниже, то использовать это:

function array_column($a, $i, $k=null) {
    return array_values(array_diff(array_map(function($a, $b) use($i, $k) {
        return $k ? [$b => $a[$i]] : $a[$i];
    }, $a, array_keys($a)), [null]));
}


получив ключи 'size' массива $_FILES['fileFF'] и суммируя их значение.

По отправлению на сервер - а что говорит отладчик?

Последний раз редактировалось laimas, 29.07.2015 в 01:44.