Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: ip2long криво работает...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
johndoesmiled
Отправлено: 05 Декабря, 2013 - 09:37:12
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




нужно записать ip в базу и соответственно прочитать.
использую ip2long и long2ip

на локальном сервере под win8.1 всё отлично работает.
так же все работает на centos под виртуалкой

почему на живом серваке вываливается бред?

CODE (htmlphp):
скопировать код в буфер обмена
  1. ip2long(192.168.1.1) = 2147483647
  2. long2ip(2147483647) = 127.255.255.255


в чём прикол? спасибо

p.s. при этом на локальном серваке работает так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. ip2long(192.168.1.1) = -1064653780(или типа того)
  2. long2ip(-1064653780) = 192.168.1.1

(Отредактировано автором: 05 Декабря, 2013 - 09:40:15)

 
 Top
EuGen Администратор
Отправлено: 05 Декабря, 2013 - 09:41:42
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Используйте:


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
johndoesmiled
Отправлено: 05 Декабря, 2013 - 10:13:46
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




EuGen пишет:
Используйте:


делаю так

запись:
PHP:
скопировать код в буфер обмена
  1. $ip = $_POST['ip'];
  2. $iptl = sprintf('%u', ip2long($ip));


чтение:


записывает 2147483647
но не читает из бд

p.s. ip2long на любой ip пишет в бд 2147483647...
(Добавление)
вобщем
ip2long(127.127.127.127) выдаёт 2147483647
и
ip2long(255.255.255.255) тоже пишет 2147483647

как так? тип поля в mysql int(255). мож в этом дело?

про отрицательное число и положительное прочёл - это изза разницы платформ, 32 и 64
(Добавление)
таки да, сменил int на varchar и всё работает

(Отредактировано автором: 05 Декабря, 2013 - 10:28:59)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB