14

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.

Mech
  • 2,904
  • 3
  • 24
  • 29
Haradzieniec
  • 9,086
  • 31
  • 117
  • 212

3 Answers3

20

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.

Marc B
  • 356,200
  • 43
  • 426
  • 500
  • When I run tests, `$_SERVER['REMOTE_ADDR']` "`isset()`" but with `null`. I *think* there is no need to surround it with `isset()` – Samuel Gfeller Mar 04 '21 at 13:51
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

Seder
  • 2,735
  • 2
  • 22
  • 43
-1

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

frustratedtech
  • 423
  • 4
  • 9