Главное Авторские колонки Вакансии Образование
Выбор редакции:
989 6 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Сколько может стоить один лишний пробел?

Мнение автора может не совпадать с мнением редакции
Произошла курьезная и очень болезненная ситуация одновременно.
У нас много зарегистрированных клиентов и много из них тех, кто ни разу не входил в систему.
Писать клиентам по таким вопросами бесполезно — мало кто из обиженных клиентов ответит почему он обиделся.

Поэтому мы не поленились и начали тупо всем звонить и спрашивать, почему, мол, так и не зашли?
Ответ был почти у всех одинаковый:
-Мы не смогли ввести логин пароль.
 b_53cf963d332de.jpg
Результат расследования отправил всех в глубоких шок!

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

Форма авторизации настроена так, что если пользователь вводит неправильный символ в поле «логин», система выдает об этом сообщение и не дает пользователю покинуть это поле пока не будет исправлена ошибка. По этой логике пользователь всегда понимает какой именно символ был введен неправильно.
Логин и пароль на доступ в систему приходил электронным письмом. Люди копипастили логин из письма и вместе с ним копировался лишний пробел на конце!Т.е. если в поле логина есть пробел, система не выпускает фокус и в итоге люди не могли даже начать вводить пароль.

Проблеме этой было примерно 3-4 месяца. На вскидку, из-за того что примерно 120-150 человек из тех кто хотел платить деньги за сервис просто не смогли зайти и жестко обиделись, этот пробел нам стоил примерно 500 т.р. Плюс минус 90 т.р.

Проблемы было две:
1. в шаблоне почтового уведомления после логина стоял лишний пробел:
Логин для входа: %3$s
Проблемное место вот здесь"%3$s "
Решили просто правкой шаблона. Теперь лишних пробелов при копипасте нет.
2. В форме авторизации не было обработки на ввод строки с некорректными символом
Тут для решения проблемы решили сделать так: Перед валидацией, сначала делаем trim, потом регуляркой вычищаем все что может помешать. К моменту проверки корректности самого логина(а в качестве логина используется e-mail) мы имеем полностью очищенную строку. А задача валидартора уже дать оценку похоже это на email и есть ли он в нашей базе.

Т.е получается так, что сначала строка нормализуется а только потом валидируется. Этот подход решено было внедрить везде. Валидаторы всех форм и полей ввода были снабжены функциями предварительной нормализации, в зависимости от типа данных конечно.

Все члены команды разработки на mm24.com занимаются вебом не менее 10 лет. И тем глупее мы выглядели в своих же глазах.

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

Возможно наш печальный пример кому-то окажется полезным.
0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
tlead.co
Биржа рекламы в Телеграм.
Samoilow Oleg
Курьезно =)
"3-4 месяца" что-то долго вы прикидывали. По идее в первый месяц можно понять по карте переходов: [почта → логин панель → выход (>90%)] например. ИМХО.
Ответить
mm24.com
Инфраструктура онлайн- и офлайн-ритейла
Alexander Rodin
Вообще ситуация вскрыло много интимных подробностей. Первое что мы поняли - надо поставить вебвизор в личный кабинет.

Если пользователь вводит посимвольно, то при вводе неправильного символа система матерится и нагло принуждает пользователя исправить ошибку. И такой подход совсем не работает когда ввод идет строки целиком.

Опишу почему сделали именно так а не сделали обработчик стандартно на сабмит формы:
Механизм валидации един в системе.Некоторые формы содержат порядка 40 полей ввода. И когда пользователь допускал ошибки хотя бы в 10(а это сплошь и рядом), он видел целый веер хинтов с предупреждениями. Это его пугало.

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

Поэтому сейчас «плохие» убираются на момент появления. Допустим если в поле для емейла пишем символы! и № они сразу убираются и пользователю показывается ая-яй.
Ответить
tlead.co
Биржа рекламы в Телеграм.
Samoilow Oleg
Правильный подход, пользователь любит умные системы.

А вот по-поводу вебвизора будьте по аккуратней, мы когда-то нечаянно собрали немного банковских карт, хотя и запрещали туда лазить вебвизору.
В общем, следите за ним по внимательней ;)
Ответить
mm24.com
Инфраструктура онлайн- и офлайн-ритейла
Alexander Rodin
А можно поподробнее?
Мы в общем из тех же соображений не стали его ставить. Вообще никакие сторонние счетчики в личном кабинете не присутствуют. По соображением безопасности. Истории с утечками банковских карт и лицевых счетов не вдохновляют.
Ответить
nuke_xl 9623
Ох уже эти студенты, пишут всякие велосипеды, вместо того чтобы воспользоваться стандартными методами валидации.
Ответить
mm24.com
Инфраструктура онлайн- и офлайн-ритейла
Alexander Rodin
Раскройте мысль до конца )
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.