Formit + AjaxForm отправляет сразу 2 письма
Доброго времени суток, возник такой трабл
При отправке формы на мейл приходит сразу 2 письма
Скорее всего это возникает, так как в форме прикрепляются файлы
Сначала приходит форма с файлами, следующее письмо уже без, просто реф и текст
Как это можно вылечить?
У кого-то такое уже было?
При отправке формы на мейл приходит сразу 2 письма
Скорее всего это возникает, так как в форме прикрепляются файлы
Сначала приходит форма с файлами, следующее письмо уже без, просто реф и текст
Как это можно вылечить?
У кого-то такое уже было?
Комментарии: 5
'preHooks' => 'referer',
'hooks' => 'spam,email,FormItSaveForm'
Без прехука вроде тоже 2 раза шлетПрехук
<?php
$hook->setValue('ref', $_SERVER['HTTP_REFERER']);
return true;
Типо в скрытый инпут тянем реф и потом его на мейл шлем {$ref}
Когда смотрю в FormIt админку с формами отправленными, вижу вот такой цуд.
prntscr.com/obbtnx
prntscr.com/obbtnx
если к форме не прикреплять ничего, тоже 2 раза приходит…
<?php
// инициализируем переменную output, отвечающую за результат работы хука, со значением true
$output = true;
// разрешённые расширения файлов
$allowedExt = array('jpg','png','svg', 'pdf', 'jpeg');
// максимальный размер файла (1024 Кбайт)
$maxFileSize = 1024 * 1024;
// если ассоциатианый массив $_FILES[$keys] существует, то
if(isset($_FILES[$key]["error"])) {
// переберём все файлы (изображения)
foreach ($_FILES[$key]["error"] as $fkey => $error) {
// если ошибок не возникло, т.е. файл был успешно загружен на сервер, то...
if ($error == UPLOAD_ERR_OK) {
// имя файла
$fileName = basename($_FILES[$key]['name'][$fkey]);
// расширение файла
$fileExt = mb_strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
// размер файла
$fileSize = filesize($_FILES[$key]['tmp_name'][$fkey]);
// проверка расширения файла
if(!in_array($fileExt, $allowedExt)) {
// файл имеет недопустимый тип
$errorMsg = 'Файл ' . $fileName . ' имеет не разрешённый тип.';
$validator->addError($key, $errorMsg);
$output = false; // возвращаем false
break;
}
if($fileSize > $maxFileSize) {
// файл имеет размер больше максимального
$errorMsg = 'Файл '. $fileName .' имеет не разрешённый размер.';
$validator->addError($key,$errorMsg);
$output = false; // возвращаем false
break;
}
} else {
// произошла ошибка при загрузке файла на сервер
$errorMsg = 'Произошла ошибка при загрузке файла ' . $fileName .' на сервер.';
$validator->addError($key,$errorMsg);
$output = false; // возвращаем false
break;
}
}
}
return $output;
Решение на проверку файла, может в нем трабл{$_modx->runSnippet('!AjaxForm', [
'snippet' => 'FormIt',
'form' => 'leadFormTpl',
'preHooks' => 'referer',
'hooks' => 'spam,email,FormItSaveForm',
'customValidators'=> 'formit2checkfiles',
'emailTpl' => 'tpl.lead',
'emailSubject' => 'Расчет стоимости',
'emailFrom' => $_modx->config.emailsender,
'emailFromName' => $_modx->config.site_name,
'emailTo' => '',
'validate' => 'name:required,adress:required,email:email:required,uploads:formit2checkfiles',
'validationErrorMessage' => 'Ошибки при заполнении формы',
'successMessage' => 'Заявка на запрос стоимости доставлена. С вами свяжутся!'
])}
Бокал пива за рабочее решение гарантирую
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.