Баг с эмодзи в коментариях к заказу. Заказы не оформляются. Не принято

2

Столкнулись с тем, что эмодзи приводят к тому, что клиенты не могут оформить заказ.

При оформлении заказа включено поле с комментариями.

В итоге такие заказы не могут быть записаны в базу.

Переход на поддержку эмодзи не предлагать. Он не сделан. Может мы его и сделаем, но и в стандартном режиме работы заказы же должы оформляться, не так ли?

Query Error 1366: Incorrect string value: '\xF0\x9F\x99\x8F\xF0\x9F...' for column 'comment' at row 1
Query: INSERT INTO shop_order
(`state_id`, `total`, `currency`, `rate`, `tax`, `discount`, `shipping`, `comment`, `unsettled`, `contact_id`, `create_datetime`) VALUES ('new', 1624, 'RUB', 1, 0, 0, 580, 'Анастасия, добавьте эти ленты в заказ 1003078 пожалуйста и перевыставите счёт мне 🙏😊', '0', '3604', '2019-12-05 18:01:17')

Декодер Лебедева говорит, что текст коммента был примерно такой: 'Анастасия, добавьте эти ленты в заказ 1003078 пожалуйста и перевыставите счёт мне ?��˜�'

По мне дак это катастрофический баг для современного Интернет-магазина. Потеря лояльного клиента ведь дорого стоит.

Прошу срочно исправить!

12 комментариев

  • +3

    На самом деле все верно и зря набросились на человека и тем более отклонили (может описано просто не техническим слогом)

    А так то обработку входящих данных еще никто не отменял, ни владелец магазина ни покупатель не должен даже задумываться над такими мелочами, может он из вайбера текст скопировал со смайликами или еще откуда

  • +2

    Декодер Лебедева говорит, что текст коммента был примерно такой...

    А разум что-нибудь подсказывает, кроме того что это "катастрофический баг для современного Интернет-магазина"? =)

    • +1

      Павел, понятно. Скажите мне пожалуйста, вот когда я вот подключился, в прошлом году, в ноябре месяце, и до 26 ноября сего года не было ни единого эмодзи, чем это было вызвано?

      Я поэтому Shop-Script и выбрал, что он безукоризненно работает, без всяких эмодзи, и что же теперь, я буду страдать из-за ваших продвинутых смайликов? Что, каждый день, что, 24 часа в сутки я должен, э... подключаться вновь, что ли, к декодеру Лебедева? Что-то я не слышал такие правила, вообще, когда я оформлял документы. Такого не было!

      Извините меня! Извините меня! Я когда, в ноябре прошлого года, до 26 ноября сего года, не было ни-е-ди-но-го эмодзи, ещё раз я вам говорю. Или я... Или вы не ферштейн, или вам надо по-китайски сказать как-то? Ни единого эмодзи не было!

      Ответьте на мой вопрос конкретно, и я тогда успокоюсь. Не мотайте мои нервы! Ответьте на мой вопрос кон-крет-но! Понимаете русский язык? Я вас слушаю ваш ответ!

      Я задавал вопрос! Перейти на совместимость с эмодзи, то что вы говорите, это сейчас не интересует, я говорю, то что до ноября прошлого года... ДА ВЫ ЗНАЕТЕ МОЙ ВОПРОС! До ноября двадцать... э... 2019 года, 26 ноября, НЕ БЫЛО НИ ЕДИНОГО ЭМОДЗИ! С чем это могло быть вызвано? Я говорю, ни единого эмодзи! А сейчас есть эмодзи!

      Высшему начальству щас соедини илии... я не знаю как.... кто может быть там старше, выше вас.

    • +1
      shop shop Партнер-разработчик 7 декабря 2019 06:18 #

      ага именно разум и подсказывает, что не то чтобы баг, а получается, что это угроза безопасности большому кол-ву магазинов на шопскрипте. Пояснение ниже.

    • +1

      А вообще можете на все инпуты повесить наблюдателя и пусть вырезает из поля все эмодзи

      return this.replace(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])/g, '');

      • +1
        shop shop Партнер-разработчик 7 декабря 2019 06:14 #

        А сейчас представьте себе рядового владельца Интернет-магазина. Который как навешивать события не знает.

        Плюс при каждом обновлении это будет отваливаться. 

        Плюс он жил себе и не тужил. И тут бах. Узнаёт, что часть его выстраданных заказов уходило в мусор из-за бага в Шопскрипте?

        Вообще магазин не должен падать из-за того, что пользователи вставляют в поля какие-либо данные. Не так ли?

        Реальная уязвимость. Например вызывая такую ошибку ботом в надежде переполнить лог файл не такая уж и бредовая идея. И за 4-6 часов это можно сделать. И тогда сайт упадёт из-за того, что кончилось место на диске.


        Темболее эта ошибка пишется как минимум в 2 файла вебасиста: в db.log и error.log
        И объем записываемых данных можно легко увеличить, если в комменты вставить войну и мир, например. и смайлик. Тогда и не надо 4-6 часов.... Сервер упадёт горраздо быстрее...

        Печальная уязвимость Вебасиста.... 

        Как я понимаю тоже самое можно провернуть с отзывами....

        И даже без смайликов... Отзывы же не режутся по длине текста.... О, раздуть базу отзывами с войной и миром и сервер встанет...

        Звучит ужасно.

      • +1
        shop shop Партнер-разработчик 9 декабря 2019 09:41 #

        По мне дак странно... почему не вырезать эмодзи из всех полей при сохранении заказа? В этом же нет технической сложности, если это делать штатными средствами Шопскрипта.

        Решается несколькими сроками кода. Почему не сделать?

      • 0
        shop shop Партнер-разработчик 7 декабря 2019 07:01 #

        Про Войну и Мир перенес в отдельную ветку... Шокирующая идея. И она, не моя. Мне ее подсказал один добрый человек..

      • 0
        Михаил Ушенин Михаил Ушенин Webasyst 9 декабря 2019 09:06 #

        Переход на поддержку эмодзи не предлагать. Он не сделан. Может мы его и сделаем, но и в стандартном режиме работы заказы же должы оформляться, не так ли?

        Нет, не должны, если не включена поддержка эмодзи. Чтобы оформлялись, нужно включить поддержку эмодзи. Эмодзи не обрабатываются правильно без включённой поддержки эмодзи.

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите