2011-11-18 24 views
10

Quiero almacenar valores de ip2logn($_SERVER['REMOTE_ADDR']) en la base de datos por algún motivo.

Prácticamente, como veo, $_SERVER['REMOTE_ADDR'] siempre tiene un valor. ¿Alguien podría confirmar que siempre está configurado para cualquier usuario y no puede ser configurado por ningún motivo?

La razón por la que lo pregunto es para asegurarme de que debo elegir NOT NULL en lugar de DEFAULT NULL para la columna en MySQL Table.

Por lo tanto, puedo almacenar ipaddress varchar(15) NOT NULL (yes, NOT null) or ip2longaddress int (11) NOT NULL, y la segunda opción es, según tengo entendido, la más preferible.

Gracias.

+0

ip2long no funcionará para direcciones IPv6, así que mejor tener una opción para el valor vacío en la base de datos. –

Respuesta

14

Solo se establecerá si está ejecutando el script a través de un servidor web. Si está ejecutando PHP en modo CLI (línea de comando), REMOTE_ADDR no se establecerá, ya que no hay una dirección remota para un script de línea de comando.

2

$ _SERVER ['REMOTE_ADDR'] siempre se establece incluso si está trabajando en localhost y no se puede deshacer, excepto que lo eliminó mediante programación Y si lo guardó en INT no habría puntos, por lo que debería guardarlo como varchar

2

puede alguien confirmar que siempre se establece para cualquier usuario

sí. Puedo.

-1

$ _SERVER vars SIEMPRE ESTÁN FIJADOS. Bueno, a menos que tengas alguna configuración de php impar.

+0

No lo diga para todos los vars. -1 si pudiera –

+0

Explique Obi Wan ... – frustratedtech

+1

@David: 'REQUEST_URI' no está configurado cuando se ejecuta en modo CLI, por ejemplo. $ _SERVER está siempre presente, pero su contenido depende completamente del entorno operativo. –

Cuestiones relacionadas