12:00 31.10.2011, IT happens
Однажды пришлось мне настраивать SMS-уведомления сотрудникам компании о предстоящих мероприятиях. Ну, как обычно: делаю выборку телефонов и имён из БД, перебираю массив и отсылаю сообщение: «%name%, напоминаем вам, что…» Вследствие того, что у одного пользователя может быть больше одного телефонного номера, сделал ещё один перебор массива с номерами внутри массива с сотрудниками. Поставил LIMIT 1 в SQL-запросе, проверил на себе — всё работает. Убрал лимит и запустил скрипт.
Заподозрил что-то неладное, когда скрипт не закончил выполнение спустя пять минут. Сослался на тугодумность SMS-сервиса, но решил проверить лог отправки. Полез в базу и обомлел. Скрипт зациклился и отправлял сообщения только одному человеку: заместителю генерального директора. В общей сложности на её телефон пришло около двух тысяч эсемесок. Пришлось извиняться.