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 :: Как записывать IP в mysql?

 PHP.SU

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


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

> Описание: Как записывать IP в mysql?
kirk
Отправлено: 05 Декабря, 2011 - 20:49:11
Post Id



Новичок


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


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




Здравствуйте, подскажите что нужно добавить в следующий код для записи IP адреса в mysql. То есть IP адрес компьютера заполняющего форму. Подскажите пожалуйста!

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $submit = $_POST['submit'];
  4. $name1 = $_POST['name1'];
  5. $name2 = $_POST['name2'];
  6.  
  7. if ($submit)
  8. {
  9. require_once("/sql.php");
  10. $query = mysql_query("INSERT INTO table VALUES ('','$name1','$name2')");
  11. echo "da!";
  12. }
  13. ?>
  14. <html>
  15. <form action="" method="post">
  16. <input name="name1" type="text"><br>
  17. <input name="name2" type="text"><br>
  18. <input name="submit" type="submit" value="GO">
  19. </form>
  20. </html>
  21.  
 
 Top
EuGen Администратор
Отправлено: 05 Декабря, 2011 - 20:51:55
Post Id


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


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


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




$_SERVER['REMOTE_ADDR']


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kirk
Отправлено: 05 Декабря, 2011 - 22:09:12
Post Id



Новичок


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


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




EuGen пишет:
$_SERVER['REMOTE_ADDR']


Можно по точнее пожалуйста, я в этом не очень понимаю..
 
 Top
sKaa
Отправлено: 05 Декабря, 2011 - 22:17:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. $query = mysql_query("INSERT INTO table VALUES ('".$_SERVER['REMOTE_ADDR']."','$name1','$name2')");
  3.  
  4.  
 
 Top
DlTA
Отправлено: 05 Декабря, 2011 - 22:20:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


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




а яб сначало преобразовал IP в целое число,
а то база загнется выборку делать
 
 Top
tuareg
Отправлено: 06 Декабря, 2011 - 01:10:58
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




DlTA пишет:
а яб сначало преобразовал IP в целое число,
а то база загнется выборку делать

Я тоже сделал бы также. Выборка плохая, если индекс по IP то длинный очень.
 
 Top
Viper
Отправлено: 06 Декабря, 2011 - 07:30:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




А как с IPv6 тоже в int преобразовывать?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 08:21:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




не влезет, автоматом конвертнётся в дабл.
 
 Top
EuGen Администратор
Отправлено: 06 Декабря, 2011 - 08:23:14
Post Id


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


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


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




Самогонщик пишет:
конвертнётся в дабл.

И какой же там по DOUBLE индекс, интересно, будет?
Я к тому, что далеко не всегда строка - худшее решение. Для IPV4 оно, в большинстве случаев, конечно же так.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 08:26:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




EuGen пишет:
И какой же там по DOUBLE индекс, интересно, будет?
А не знаю, скажу лишь только что будет потеря точности, ибо в ип6 16 байт, а в дабле всего 8, так что даже теоретической возможности правильного обратного преобразования нет.
 
 Top
DlTA
Отправлено: 06 Декабря, 2011 - 08:41:32
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


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




можно извратиться, разбивать на две части
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 08:55:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




а бы не был уверен в однозначном преобразовании 8 байт целое <-> дабл. Глубже думать лень. Хотя нет, не лень.

Если использовать стандартное преобразование из инт64 в дабл, произойдёт потеря точности, т.к. в дабле значащих бати меньше 64.

Если использовать побитовое копирование в дабл, тогда можно. Но я не знаю как провернуть в пхп.
 
 Top
Мелкий Супермодератор
Отправлено: 06 Декабря, 2011 - 09:06:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




При чём здесь int64? IPv6 = 128 бит.
ip2long в любом случае не съест ipv6, а inet_pton возвращает строку всегда. При том, бинарную.


-----
PostgreSQL DBA
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 09:19:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


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




Мелкий пишет:
При чём здесь int64? IPv6 = 128 бит.
DlTA пишет:
можно извратиться, разбивать на две части


ip2long ничего не вернул для ipv6
inet_pton - отлично отработал, но ему и положено inet_pton
 
 Top
tuareg
Отправлено: 06 Декабря, 2011 - 09:36:49
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Хранить строкой и сделать его ХЕШ. И индекс делать по ХЭШ.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB