Добрый день! Познакомились с UBilling'ом, и в процессе знакомства случился забавный инцидент.
Вот такой алерт сейчас можно увидеть в живом демо, если перейти на вкладку "Онлайн".
Что мы делали (Step for reproduce):
1. Переходим на вкладку "Консоль разработчика"
2. Выбираем вкладку "Миграция 2"
3. Загружаем csv файл. В нем у нас есть восемь столбцов. Распределяем их по полям новой БД, как на скриншоте ниже. В своем примере, я использовал поля Login, Password, IP, MAC, tariff, cash, address, realName. Всё остальное выставлял по-умолчанию (set_to_none). В user registration mode выбираем PHP Script
4. Жмем большую кнопку.
5. На выходе получаем таблицу. Соглашаемся.
6. Хватаем сгенерированный пхп-код в буфер обмена
7. Снова переходим в консоль разработчика, на этот раз на вкладку PHP-консоль
8. Вставляем код из буфера обмена в консоль и запускаем его.
9. Если всё сделано правильно, на вкладке "Онлайн" у вас будут отображаться все абоненты.
10. Теперь удалим одного любого абонента. (Выираем абонента, переходим на вкладку "Черная магия" -> "Удалить абонента", если что)
11. Наблюдаем беду как на первом скриншоте.
Ок. Давайте попробуем через поиск пользователей
1. Выбираем Поиск Пользователей
2. Вводим любой адрес. (Я вводил Зловещенск - Вязов - непомнюкакойдом - кв.2)
3. Жмём!
Если посмотреть файл api.address.php то мы увидим, что происходит обращение к переменной $apts
Я в php не силён. Но судя по надписи Undefined index, я так понимаю, что не возможно найти такую запись в БД (Массиве, HashMap, и т.п.) по такому ключу.
Буду рад - если наша информация окажется полезной для проекта.
И вопрос один. Как можно исправить ситуацию в случае повторения ситуации?
upd. Оно (повторение) как раз случилось уже при миграции с полностью заполненными полями адреса, кстати