Formit + AjaxForm отправляет сразу 2 письма

Доброго времени суток, возник такой трабл
При отправке формы на мейл приходит сразу 2 письма
Скорее всего это возникает, так как в форме прикрепляются файлы
Сначала приходит форма с файлами, следующее письмо уже без, просто реф и текст
Как это можно вылечить?
У кого-то такое уже было?
W.H.I.T.E
06 июля 2019, 11:49
modx.pro
1 214
0

Комментарии: 5

W.H.I.T.E
06 июля 2019, 11:52
0
'preHooks' => 'referer',
'hooks' => 'spam,email,FormItSaveForm'
Без прехука вроде тоже 2 раза шлет
Прехук
<?php
$hook->setValue('ref', $_SERVER['HTTP_REFERER']);
return true;
Типо в скрытый инпут тянем реф и потом его на мейл шлем {$ref}
    W.H.I.T.E
    06 июля 2019, 11:54
    0
    Когда смотрю в FormIt админку с формами отправленными, вижу вот такой цуд.
    prntscr.com/obbtnx
      W.H.I.T.E
      06 июля 2019, 12:11
      0
      если к форме не прикреплять ничего, тоже 2 раза приходит…
        W.H.I.T.E
        06 июля 2019, 12:15
        0
        <?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' => 'Заявка на запрос стоимости доставлена. С вами свяжутся!'
                            ])}
          W.H.I.T.E
          06 июля 2019, 18:52
          0
          Бокал пива за рабочее решение гарантирую
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            5