Is $_SERVER['REMOTE_ADDR'] always isset()?

大兔子大兔子 提交于 2019-11-28 07:09:11

问题


I want to store ip2logn($_SERVER['REMOTE_ADDR']) values in the db for some reason.

Practically, as I see, $_SERVER['REMOTE_ADDR'] always has a value. Could anybody confirm it is always set for any user and can't be not set by any reason?

The reason I ask it is to be sure I should choose NOT NULL instead of DEFAULT NULL for the column in MySQL Table.

So, I can store ipaddressvarchar(15) NOT NULL (yes, NOT null) or ip2longaddress int(11) NOT NULL, and the second option is, as I understand, the most preferable.

Thank you.


回答1:


It will only be set if you're running the script through a webserver. If you're running PHP in CLI (command line) mode, REMOTE_ADDR will not be set, as there is no remote address for a command line script.




回答2:


$_SERVER['REMOTE_ADDR'] is always set even if you are working on localhost and can't be unset except you programmatically removed it And if you saved it in INT there would be no dots so you should save it as varchar




回答3:


$_SERVER vars are ALWAYS SET. Well, unless you have some odd php setup.



来源:https://stackoverflow.com/questions/8187714/is-serverremote-addr-always-isset

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!