Message
Argument 1 passed to MaxMind\Db\Reader::get() must be of the type string, null given, called in /home/tdspiter/public_html/app/functions/fn.locations.php on line 764
Error at
app/lib/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php, line: 124
public function get($ipAddress)
{
if (\func_num_args() !== 1) {
throw new InvalidArgumentException(
'Method takes exactly one argument.'
);
}
list($record) = $this->getWithPrefixLen($ipAddress);
return $record;
}`Текст «как есть» (без применения форматирования)`
почему-то сразу не сообразил, но попросил в офисе людей проверить проблему
у 2/3 с такой же ошибкой сайт отваливается, причем и на ios, и на android, и в разных браузерах
но это только на мобильном интернете, на вайфае все работает
а вторая витрина работает у всех без ошибок, потому что там функция fn_get_country_by_ip вообще не фигурирует, тестовые данные не выводятся, как на основной
не может это быть от провайдера тырнета проблема? с этими их блокировками всякими сейчас
и может кто подскажет, возможно ли это дело где-то местами закомментить, чтобы сайт нормально работать стал?
Проблема оказалась в старой х32 системе на сервере, так что если кто-то решит обновляться с 4.17.2, имейте это ввиду
Из документации PHP:
Замечание: На 32-битных архитектурах приведение целочисленных представлений IP-адресов из строки (string) в целое число (int) не даст правильных результатов для чисел, которые превышают значение константы PHP_INT_MAX.
В поддержка ответили:
В 4.18.1, в рамках добавления поддержки PHP 8.2, были обновлены используемые сторонние библиотеки, в том числе библиотека maxmind-db/reader, в методах которой появилась строгая типизация для параметров. И если раньше, переданный параметр неправильного типа, молча неправильно обрабатывался, то теперь такая ситуация вызывает ошибку.
Операционная система с такой разрядностью сильно ограничена в максимальном количестве доступных ресурсов, в связи с архитектурными ограничениями. Использование данной устаревшей архитектуры в настоящее время нецелесообразно и может вызвать проблемы в неожиданных местах, когда, например, появятся значения идентификаторов (чего угодно), более чем 2147483647
Добрый день, я пока что на 4.18.4, на нее дало спокойно обновиться
Проблема со старой системой х32 вскрылась уже после обновления, когда началась рабочая неделе, и менеджеры стали присылать жалобы (обновлял на выходных магазин)
Для 4.19 нужно, как минимум, иметь свежую систему х64 на сервере и подходящую версию php