# PaRtiZzaN (14.02.2020 / 17:33)Проблема в 32 битной операционной системе.
forum/?act=show_post&id=553169
Я так и не понял в чем проблема. Почему вы говорите что версия стабильная но не работает сразу после установки?
# PaRtiZzaN (14.02.2020 / 17:33)Проблема в 32 битной операционной системе.
forum/?act=show_post&id=553169
Я так и не понял в чем проблема. Почему вы говорите что версия стабильная но не работает сразу после установки?
Simba, На хостинге?
Simba, И что теперь делать если я не хочу хостинг менять? ![]()
# PaRtiZzaN (14.02.2020 / 17:53)Ну юзать 32 битную операционку это всё равно, что юзать php5)
Simba, И что теперь делать если я не хочу хостинг менять?
Simba, Все цмс работают стабильно. Кроме нового Джона.
# PaRtiZzaN (14.02.2020 / 18:33)https://www.php.net/manual/ru/ ... p.php
Simba, Все цмс работают стабильно. Кроме нового Джона.
Замечание:
На 32-битных архитектурах преобразование строки с числами в целочисленное значение будет некорректно для чисел, больших PHP_INT_MAX.
Simba, У меня на хостинге не 32бита![]()
Читаем внимательно ошибку, видим, на какой именно функции ломается:
long2ip('1433478966')
Пробуем создать файл вне кода сайта, вызываем функцию:
echo long2ip('1433478966')
работает: http://fonext.ru/long2ip.php
Значит дело в чем-то другом
Ну и так, для справки:
А я нашел причину ошибки
И починил
Проблема – в неявных преобразованиях типов, которое не сработало так, как ожидается.
Читаем ошибку:
Fatal error: Uncaught TypeError: long2ip() expects parameter 1 to be int, string given in
Переводим: в качестве аргумента ожидается число, но передана строка. Окей, смотрим, в каком файле ошибка и на какой строке:
modules/profile/includes/index.php:39
Вот она, строка:
$user_data['ip'] = long2ip($user_data['ip']);
Пробуем преобразовать данные в число:
$user_data['ip'] = long2ip((integer)$user_data['ip’]);
Страница начинает открываться.
Ну, бывает, не сработало неявное преобразование типов нормально.
А именно:
В файле modules/profile/includes/index.php на 39 строке указал явный тип данных – число, заменив строку
$user_data['ip'] = long2ip($user_data['ip']);
на строку
$user_data['ip'] = long2ip((integer)$user_data['ip']);