Всегда ли isset () $ _SERVER ['REMOTE_ADDR']? - PullRequest
12 голосов
/ 18 ноября 2011

Я хочу хранить значения ip2logn($_SERVER['REMOTE_ADDR']) в БД по некоторым причинам.

Практически, как я вижу, $_SERVER['REMOTE_ADDR'] всегда имеет значение.Кто-нибудь может подтвердить, что он всегда установлен для любого пользователя и не может быть установлен по любой причине?

Причина, по которой я спрашиваю, состоит в том, чтобы убедиться, что я выбрал NOT NULL вместо DEFAULT NULL для столбца в MySQL Table.

Итак, я могу сохранить ipaddress varchar(15) NOT NULL (yes, NOT null) or ip2longaddress int (11) NOT NULL, и второй вариант, как я понимаю, наиболее предпочтительный.

Спасибо.

Ответы [ 3 ]

16 голосов
/ 18 ноября 2011

Будет установлено, только если вы запускаете скрипт через веб-сервер.Если вы используете PHP в режиме командной строки (CLI), REMOTE_ADDR не будет установлен, так как для сценария командной строки нет удаленного адреса.

2 голосов
/ 18 ноября 2011

$ _ SERVER ['REMOTE_ADDR'] всегда устанавливается, даже если вы работаете на localhost и не можете быть сброшены, если вы не удалили его программным способом. И если вы сохранили его в INT, точек не будет, поэтому вы должны сохранить его как varchar.

0 голосов
/ 18 ноября 2011

$ _ ВАРИАНТЫ СЕРВЕРА ВСЕГДА УСТАНАВЛИВАЮТСЯ. Ну, если у вас нет какой-то странной настройки PHP.

...