Вход • Регистрация

Не отправляется заказ, вылазит ошибка

  • 21 августа 2018 г. , редакция: 21 августа 2018 г.
  • Похожая проблема, но нет.
    Обновили сайт на новую версию ЦМС, установили на чистую скрипт и шаблон, всё наполнили по новой.

    обнаружили, что не приходят уведомления на почту.
    Думал в авторизации накосячил, но нет..
    10 раз всё проверил. На старой версии всё ок.

    Код
    Fatal Error: syntax error, unexpected '[' plugins/class.phpmailer.php: 271


    Что при оформлении заказа, что при оставлении комментария.
    В этой ветке прочел что файл конфликтует с оригиналом файла из цмс, залез в архив установки, сравнил файл в нем, с файлом на сервере - 1 в 1.

    Проверил
    Цитата
    custom/my/plugins/class.phpmailer.php


    Папки плагинс в кастом нет, то-есть по идее файл вообще не заменяется.

    Подскажите куда смотреть?? https://reaction.ru/arenda/stabilizers/feiyu_g5/ - быстрый заказ пример
    • 21 августа 2018 г.
    • Mr_facepalm (Влад), по всем признакам у Вас не оригинальные файлы плагина отправки уведомлений.

      Скачайте актуальный дистрибутив DIAFAN.CMS и возьмите от туда файлы:
      plugins/class.phpmailer.php
      plugins/class.smtp.php

      Указанные файлы поместите на свой хост, заменив аналогичные файлы. Одновременно проверьте, нет ли таких же файлов в активной теме сайта. Если есть, то удалите их из темы.
      • 21 августа 2018 г.
      • Проверил ещё раз, перезалил файлы plugins/class.phpmailer.php и plugins/class.smtp.php на сервер из апрельского архива diafan, т.к. читал, что в последнем апдейте эта функция стала работать чуть иначе. (Сначала оформление заказа, а потом уже отправка уведомлений на почту). Проверил папку кастомс, Там точно нет папки плагин.

        в итоге

        Код
        Fatal Error: syntax error, unexpected '[' plugins/class.phpmailer.php: 271
        • 21 августа 2018 г. , редакция: 21 августа 2018 г.
        • Цитата
          Fatal Error: syntax error, unexpected '[' plugins/class.phpmailer.php: 271


          plugins/class.phpmailer.php на скриншоте строка 271



          http://php.net/manual/ru/language.types.array.php
          Цитата
          Начиная с PHP 5.4 возможно использовать короткий синтаксис определения массивов, который заменяет языковую конструкцию array() на [].


          Версия РНР какая на хостинге?
        • 21 августа 2018 г. , редакция: 21 августа 2018 г.
        • Цитата
          Проверил ещё раз, перезалил файлы
          Вот какой смысл, что-либо писать, пытаясь подсказать, помочь. Пишу про актуальную версию cms, а Вы про апрельский выпуск обновлений.

          Цитата
          на сервер из апрельского архива diafan, т.к. читал, что в последнем апдейте эта функция стала работать чуть иначе.
          Все верно, но надо понимать, в чем отличие. Не буду описывать теорию, поэтому кратко. Используйте актуальную версию cms. Единственное с чем Вы можете столкнуться в обновленной версии, так это с тем, что если используется протокол TLS, то необходимо выставить порт 587. А если SSL, то порт 465. Вообще это и есть классический подход использования протоколов и портов.

          Если же Вы принципиально не желаете использовать актуальную версию cms, то отвечу. Ваша ошибка связана с тем, что используемый Вами плагин рассчитан на версию PHP 5.5 (в актуальной версии cms плагин адаптирован к PHP 5.3), а у Вас на хостинге более древняя версия. Решение, возьмите файлы plugins/class.phpmailer.php и plugins/class.smtp.php из более ранней версии дистрибутива. Но, на мой взгляд, это не правильное решение.
          • 21 августа 2018 г.
          • На момент переезда сайта (апрель) DIAFAN.CMS 6.0 - была актуальной версией))
            А последнее обновление вышло кажется вот-вот на неделе) Более того, на 99% уверен, что коробочная версия работала без сюрпризов. могу даже на поддомен поставить для теста. Версия PHP 5.3
            • 21 августа 2018 г.
            • А версию PHP на хостинге есть возможность поменять?
              • 21 августа 2018 г.
              • Да, хостинг от REG.RU
                Поменять можно.

                По совету Виталия
                Цитата
                Используйте актуальную версию cms.

                обновился автообновлением, дабы можно откатиться.

                Ошибка пропала.. Но уведомления так и не приходят..)
              • 21 августа 2018 г.
              • Цитата
                Но уведомления так и не приходят..)

                И чего? Это к чему?
                Вы намекаете, что мы выпустили кривую сборку с нерабочим модулем, она не отправляет уведомления, мы это не протестировали, а все сообщения от сотен недовольных пользователей на форуме удаляем?
                Или всё-таки проблема на Вашем конкретном сайте/хостинге и Вам нужна помощь опытных товарищей и Вы её доброжелательно просите?
              • 21 августа 2018 г. , редакция: 21 августа 2018 г.
              • Виталий сегодня не в настроении

                Mr_facepalm (Влад), я бы порекомендовала полазить по форуму, есть темы, где всяко-разно обсуждалось.
                Например, почитайте тут. Попробуйте настройки на сайте переделать.
              • 22 августа 2018 г.
              • Цитата
                Ошибка пропала.. Но уведомления так и не приходят..)
                Скрин подраздела "Параметры сайта" выложите, где SMTP-настройки. Чтобы в бабу Вангу не играть.
    • 28 августа 2018 г.
    • Такая проблема существует. И из коробки.
      Проверил только что.

      Чистая установка последней версии 6.0.7.9
      php 7.1

      Проблема в class.phpmailer или class.smtp
      • 28 августа 2018 г.
      • Висяк в отложке, тыкаешь отправить, зарегистрирована ошибка.
      • 28 августа 2018 г.
      • Цитата
        Проблема в class.phpmailer или class.smtp
        Да уж конечно, ага! Хаха!
        Я мне кажется (!!!), но на 100%, что проблема у Вас с параметрами smtp, логином, портом, сервером или паролем.
        • 28 августа 2018 г.
        • Это конечно интересное заявление.
          Но такое выявляется, только в новых версиях (с какой именно началось не могу точно определить) при идентичных настройках.

          Например: до версии 4 (образно) все работает, после обновления на версию 4 и выше, перестает работать.

          Цитата
          что проблема у Вас с параметрами smtp, логином, портом, сервером или паролем
          Я проверял: настройки smtp, порт, логин, пароль, просматривал логи - записей об ошибке не обнаружено.

          Настройки:
          e-mail сайта: noreply@magazik.com
          Использовать smtp: включено
          SMTP-хост (например, tls://smtp.mail.ru): smtp.magazik.com
          SMTP-логин (например, ivanov@mail.ru): noreply@magazik.com
          SMTP-пароль: 23525623623
          SMTP-порт (например, 465 или 587): оставляю поле пустым, cms автотически подставляет 25

          • 28 августа 2018 г. , редакция: 28 августа 2018 г.
          • Хост без протокола и соответственно от протокола будет свой порт . Вот вам две ошибки сразу.
            • 28 августа 2018 г.
            • В моем случае, не используется не ssl, не tls (да у меня такое подключение, с ним я работаю в предыдущих версиях и все успешно)
              Две ошибки не обнаружены
              • 28 августа 2018 г.
              • Протокол указывать надо обязательно. Как и порт.
                Уточните на хостинге, как именно указывать протокол, если он не защищенный. Запросите также логи, на что именно ругается плагин, на ненайденный хост, на неверное соединение или потом уже на логин/пароль
  • 21 августа 2018 г.
  • Цитата
    Версия РНР какая на хостинге?

    Версия 5.3
  • 21 августа 2018 г. , редакция: 21 августа 2018 г.
  • Цитата
    Ошибка пропала.. Но уведомления так и не приходят..)
    В актуальной версии есть модуль "Уведомления". Если возникла ошибка при отправлении письма, то там она будет зафиксирована. Если ошибка не зафиксирована, то письмо ушло.

    Цитата
    могу даже на поддомен поставить для теста
    Ну так и поставьте только актуальную cms без каких-либо своих изменений или домыслов. Настройте SMTP в параметрах сайта и через модуль "Уведомления" попробуйте послать письма или смс.
  • 22 августа 2018 г.
  • Цитата
    И чего? Это к чему? Вы намекаете, что мы выпустили кривую сборку с нерабочим модулем, она не отправляет уведомления, мы это не протестировали

    Виталий, уже лет 5 наехать пытаюсь)
    Вот пускай все услышат крик, разработчики негодяи - ошибок в модулях наклепали)
    (шутка, не будем останавливаться))

    Прогресс есть)
    Уведомления стали приходить, правда только с отключенной smtp. Которая всегда была включена.

    Было сделано:
    - Установлены все последние обновления diafan.
    После чего ошибка пропала, т.к. отправка письма была отложенной, что круто, и висела в новом модуле Уведомления со статусом Подготовлено. При попытке ручной отправки переходило в статус Ошибка.
    - Проверка и перепроверка всех настроек smtp
    - На всякий пожарный менял порты с, на порты без шифрования и обратно.
    - проверка статуса подключения домена к Яндекс почте для домена - Домен подключен
    - к сожалению письма так и не уходили.
    - по совету Александры перечитал всё ветку по теме проблемы с отправкой писем (оказалось не туда я всё это время строчу)
    там все активно настраивали smtp, но я решил отключить его для проверки и это дало первые плоды.
    - Включил режим разработчика и попытался таким образом найти корни (предварительно вернув smtp и сняв галочку отложенной отправки в настройках уведомлений) , но к сожалению не увидел в футере, или где обычно высвечиваются ошибки ничегошеньки.

    Пока вариантов нет, но за сегодня для решения проблемы, с вашей конечно-же помощью) было сделано больше, чем за последние 4 месяца.
    Днем буду писать хостеру, мб у них там чудеса какие, ну рили, чистая цмс, без модулей, только шаблон на этапе установке был добавлен. В папке кастом нет папки плагин)
    • 22 августа 2018 г.
    • Цитата
      - Проверка и перепроверка всех настроек smtp
      Это всё относительно. Как уже написал выше - выложите скрин настроек SMTP. Тогда будем точно уверены, что всё правильно и это не оно.
  • 24 августа 2018 г.
  • Цитата
    plugins/class.phpmailer.php на скриншоте строка 271


    Виталий у тебя что в кач-ве IDE notepad++?
    • 24 августа 2018 г.
    • А чего? Простой, не тормозит, можно портативную версию использовать, расширяемый, куча плагинов. Под свои задачи можно вполне настроить и бед не знать. Каждому по потребностям.
      • 24 августа 2018 г.
      • Я только notepad++ и пользуюсь, другие пробовал не впечатлили.
    • 24 августа 2018 г.
    • Тоже использую периодически его для быстрого и простого редактирования. Подходит идеально.
    • 24 августа 2018 г.
    • Вообще не, обычный Блокнот, виндовый, синенький. А этот скриншот не мой, мне Виталя переслал
      • 27 августа 2018 г.
      • Теперь понятно откуда в моделях неиспользуемые переменные и функции)))
        а в js конструкции вида !(a == b) =)))
        • 27 августа 2018 г.
        • Цитата
          Теперь понятно откуда в моделях неиспользуемые переменные и функции)))
          Ух ты, впечатлен :)
    • 24 августа 2018 г.
    • А че? У меня для просмотра вообще "бред" стоит. Ниче так. Подсветка есть и все такое.
  • 24 августа 2018 г.
  • Цитата
    А этот скриншот не мой, мне Виталя переслал

    блин, думал в пейнте нарисовал
  • 28 августа 2018 г.
  • Цитата
    Виталий (DIAFAN.CMS) 5851 минуту назадПротокол указывать надо обязательно. Как и порт. Уточните на хостинге, как именно указывать протокол, если он не защищенный. Запросите также логи, на что именно ругается плагин, на ненайденный хост, на неверное соединение или потом уже на логин/пароль
    Я с этим хостом 9 лет. В факе хоста, так и указано подключение, без протокола, без ssl и tls, т.е. smtp.domain.com.
    На предыдущих версиях cms я создавал идентичные подключения к smtp и почта ходила.
    Но на новых версиях с такими же настройками smtp почта не ходит.

    К хостеру я обращусь. Так же могу предоставить тестовую установку и два тестовых почтовых адреса, если кто хочет повеселится.
    • 28 августа 2018 г.
    • Да и на версии 6.0.7.2 + пыха 7.1 такая проблема.
      А если заменить старыми файлами phpmailer и smtp, все работает.

      Значит, явно не в подключении дело.
    • 28 августа 2018 г.
    • Потому, что плагин новый, требования меняются, таковы последние стандарты. Если у Вас хостинг 9 лет не менял ПО, конечно, оно на старом плагине будет работать, а на новом нет
      • 28 августа 2018 г.
      • Цитата
        Если у Вас хостинг 9 лет не менял ПО
        а как тогда там оказалась пыха 7.1 и 7.2?
    • 28 августа 2018 г.
    • Но это не ошибка cms.
      Ситуаций, когда мы что-то внедряем РНРшное из 5.6, а у кого-то работало раньше, но перестало, т.к. на хостинге РНР 5.2 по прежнему стоит, много, но это не повод заявлять, что это ошибка в цмс и нужно что-то возвращать как было. Лучше просто обновить РНР.
      А в Вашем случае попросить хостинг обеспечить защищенное соединение при отправке писем по SMTP.
      Это в любом случае пойдёт на пользу. Заявлять с гордостью, что "у меня ходило не по защищенному каналу" не айс ;)
      • 28 августа 2018 г. , редакция: 28 августа 2018 г.
      • Цитата
        Ситуаций, когда мы что-то внедряем РНРшное из 5.6, а у кого-то работало раньше, но перестало, т.к. на хостинге РНР 5.2 по прежнему стоит
        я диафан использовал всегда только с 5.67.07.1.7.2, но познакомился раньше, наверное в 2012 году показали мне его.
        Говорили, это пушка.

        Цитата
        А в Вашем случае попросить хостинг обеспечить защищенное соединение при отправке писем по SMTP.
        такая возможность есть. Но интересно почему без ssl and tls не ходит :)
        • 28 августа 2018 г.
        • Цитата
          Но интересно почему без ssl and tls не ходит :)
          Есть ли понимание, что такое SSL, TLS, SMTP, защищенный канал связи, порты, протоколы? Если нет понимания, то ничего страшного в этом нет. Все знать не возможно. Поэтому и существует разделение труда.

          Цитата
          Но интересно почему без ssl and tls не ходит :)
          Потому, что номер порта должен быть другим!!!
          • 28 августа 2018 г.
          • Цитата
            Потому, что номер порта должен быть другим!!!

            я писал про не защищенное подключение.
            p.s. !!!

            Цитата
            Есть ли понимание, что такое SSL, TLS, SMTP, защищенный канал связи, порты, протоколы?

            Это тут причем, если оказалось, что в обновленном phpmailer по умолчанию стоит SMTPAutoTLS = true; а подключение остается старое без tls или ssl. Вот оттуда и сообщения на форумах и в тп наверное.
            • 28 августа 2018 г. , редакция: 28 августа 2018 г.
            • Цитата
              Это тут причем, если оказалось
              Так я про то же. Если б было понимание, то настройка почтового соединения заняла бы от силы пять минут.

              А если Вы используете незащищенный канал связи для передачи почтовых сообщений, то тут просто мне нечего сказать. Действительно, зачем нужна эта конфиденциальность в коммерческой переписке. Не так ли?
              • 28 августа 2018 г.
              • Цитата
                Если б было понимание

                Понимание чего? что в обновленном phpmailer появилось по умолчанию true?
                Однако же, как я вижу, понимающие не раз не затронули этот факт, что надо использовать теперь только ssl или tls. Значит, не такие и понимающие, которые пишут такие сообщения.

                Цитата
                то настройка почтового соединения заняла бы от силы пять минут

                Обычное на это уходит не больше минуты. Но ничего страшного, старость не радость, я все понимаю.
              • 28 августа 2018 г.
              • Цитата
                А если Вы используете незащищенный канал связи для передачи почтовых сообщений, то тут просто мне нечего сказать.
                И правильно, решать то не вам, что мне использовать. На своих проектах делайте, что хотите и как хотите.

                Цитата
                Действительно, зачем нужна эта конфиденциальность в коммерческой переписке. Не так ли?
                Оповещение перешло в разряд коммерческой переписки. Прям чатик какой-то, не так ли? Может все таки я буду сам решать, когда использовать защищенное подключение, а когда нет?

  • 28 августа 2018 г.
  • Ну в общем да, это все в phpmailer, надо было сразу смотреть настройки.
    SMTPSecure = ;
    SMTPAutoTLS = ;

    Но уже пересел на tls :)
    • 28 августа 2018 г.
    • Цитата
      Но уже пересел на tls :)
      Ну и правильно. SSL уже давно скомпрометирован.
  • 28 августа 2018 г. , редакция: 28 августа 2018 г.
  • Цитата
    Значит, не такие и понимающие, которые пишут такие сообщения.
    Вполне возможно, не буду спорить. Только в отношении меня можете употреблять не "которые", а явно, не стесняясь, так и писать.
    Цитата
    Обычное на это уходит не больше минуты. Но ничего страшного, старость не радость, я все понимаю.
    Ну и хорошо, растет прекрасная смена, все сделает меньше чем за минуту.
    • 28 августа 2018 г.
    • Цитата
      Вполне возможно, не буду спорить. Только в отношении меня можете употреблять не "которые", а явно, не стеснять, так и писать.
      Ну и не стоило начинать писать в таком ключе, когда уже все стало на свои места.

      Цитата
      Ну и хорошо, растет прекрасная смена, все сделает меньше чем за минуту.

      Вам явно скучно.
  • 28 августа 2018 г.
  • Цитата
    Понимание чего? что в обновленном phpmailer появилось по умолчанию true?

    Об этом уже давно сообщали: https://user.diafan.ru/news/izmenenie-nastroek-pochtovykh-uvedomleniy/
    • 28 августа 2018 г.
    • Цитата
      Почтовые службы начали использовать
      Ну вот опять начинается.
      Почтовые службы. Проще надо писать: phpmailer обновился и по умолчанию работает только с tls и ssl, если вы хотите, что бы при обновлении работали оповещения, вам нужно изменить настройки подключения.
      • 28 августа 2018 г.
      • Куда проще, если в коде даны все комментарии?
        Код
        /**
        * Whether to enable TLS encryption automatically if a server supports it,
        * even if `SMTPSecure` is not set to 'tls'.
        * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid.
        *
        * @var bool
        */
        public $SMTPAutoTLS = true;
        • 28 августа 2018 г.
        • Ну конечно это просто! Туда первым делом полезут пользователи облака и администраторы сайта, который уже давно сдали или разработчик пропал. Гениально!

          Опять же таки, это так просто, очень просто. Что в ответе фэйспалму:
          Цитата
          Единственное с чем Вы можете столкнуться в обновленной версии, так это с тем, что если используется протокол TLS, то необходимо выставить порт 587. А если SSL, то порт 465.
          не было написано, что теперь нужно использовать только (еще раз, ТОЛЬКО) tls and ssl.
          • 28 августа 2018 г.
          • Цитата
            Ну конечно это просто!
            В целом так и есть. Но Ваши сообщения не лишены смысла. Возможно в данном направлении стоит подумать. Кто же против. Просто использование незащищенного соединения при отправке писем довольно редкое явление. Я бы сказал даже некоторое исключение. Но как видим, такое явление есть. Подумаем над данным моментом.
            • 28 августа 2018 г.
            • Цитата
              Но Ваши сообщения не лишены смысла.
              Спасибо, мне сразу стало, так легче. Я уже думал все.

              Цитата
              Просто использование незащищенного соединения при отправке писем довольно редкое явление. Я бы сказал даже некоторое исключение.
              Т.е. как поддерживать 5.3 так это в порядке вещей, а если использовать обычное подключение, ты уже рак отшельник? Интересненько.

              Цитата
              Подумаем над данным моментом.
              Лучше делать.
  • 28 августа 2018 г.
  • Цитата
    Оповещение перешло в разряд коммерческой переписки. Прям чатик какой-то, не так ли?

    В актуальной версии cms есть модуль "Уведомления". С помощью него можно отправить не только оповещение о заказе. В ряде случаев передаваемая информация должна оставаться конфиденциальной. Так что не соглашусь с Вашим мнением.
    • 28 августа 2018 г.
    • На данный момент работаю с 6.0.7.2, модуля еще нет.

      Цитата
      Так что не соглашусь с Вашим мнением.
      Я так и не считаю. Мне не нравится такой тон чсв сообщений.
      • 28 августа 2018 г. , редакция: 29 августа 2018 г.
      • Цитата
        Мне не нравится такой тон чсв сообщений.

        В смысле? Я выразил свою точку зрения, Вы выразили свою. Каждый из нас вправе не согласиться с чужим мнением. Это нормальная дискуссия, в которой рождается истина. Не совсем пойму, чем Вас обидел? Такого в мои планы не входило.
        • 28 августа 2018 г.
        • Цитата
          Это нормальная дискуссия, в которой рождается истина.
          Жаль, что этой дискуссий не бывает здесь:

          https://user.diafan.ru/forum/show4707/
          https://user.diafan.ru/forum/show4686/
          https://user.diafan.ru/forum/show3321/

          А здесь, уже все решено. А сообщения по типу "каждый дрочит, как он хочет" (tls или простое подключение) не вижу полезными для рождения какой-то истины.
  • 28 августа 2018 г.
  • Цитата
    Т.е. как поддерживать 5.3 так это в порядке вещей, а если использовать обычное подключение
    Это немного разные вещи. Не буду об этом, иначе уйдем от основной темы ветки форума.
    Цитата
    Лучше делать.
    Сначала все же надо подумать.
    • 28 августа 2018 г.
    • Цитата
      Сначала все же надо подумать.
      Как над документацией для модуля отзывы? Нет, я понимаю, что работы много, идет улучшение и оно заметно. Но, хотя бы чуть чуть.

      Цитата
      Это немного разные вещи. Не буду об этом, иначе уйдем от основной темы ветки форума.
      Думаю, можно создать опрос на сайте, какой процент и какую пыху использует. Так же применять и к другим вещам, например: выпилить из короюки живосайт или нет?
  • 29 августа 2018 г.
  • Ребята, не ругайтесь!
    Рома, я сразу сказал, что проблема в новом плагине phpmailer, в котором да, по умолчанию выставлено tls. Предлагать поменять плагин не стал, т.к. не знаю уровня и не хотелось, чтобы правленный плагин улетел в кастом и не обновлялся больше. Да и объективно защищенное соединение лучше не защищенного.а пользователи облака в 99,5% случаев используют ящики с mail.ru yandex.ru или Gmail.com, а там ssl tls везде, так что проблем ни у кого нет.
    • 29 августа 2018 г. , редакция: 29 августа 2018 г.
    • Цитата
      я сразу сказал, что проблема в новом плагине phpmailer
      поэтому я и понял куда копать и в чем проблема. Спасибо.

      Цитата
      защищенное соединение лучше не защищенного
      думаю, это ложное чувство безопасности, с учетом новых и шокирующих CVE :)

      Цитата
      так что проблем ни у кого нет.
      Это прекрасно.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум