Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Skeletron en 7 Abril 2013, 03:27 am



Título: Variable HTTP_HOST no definida. Porque?
Publicado por: Skeletron en 7 Abril 2013, 03:27 am
Hola gente.
Resulta que, tengo un codigo fuente (PHP) que hace algo así en el index:
<?php
if($_SERVER['HTTP_HOST'] == 'www.xxx.com')
   error_reporting(0);
elseif($_SERVER['HTTP_HOST'] == 'beta.xxx.com')
   error_reporting(E_ALL ^ E_NOTICE);
else
   error_reporting(0);


Y veo que en el LOG de error de apache, aparecen estos errores:
Notice:  Undefined index: HTTP_HOST
eso, repetido muy muchas veces.

Como que, HTTP_HOST no está definido... Pero, si o si tiene que estar definido... O NO? Porque causa no podría estar definida esa variable?
El servidor es una PC mia que está en mi hogar.

Es raro... O no? Que puede estar pasando?


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: EFEX en 7 Abril 2013, 19:18 pm
No te preocupes no es un error solo te indica que estas tratando de acceder a una variable que no esta definida en este caso un array., se utiliza la función isset() para saber si está definida.

http://php.net/manual/es/function.isset.php


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: Skeletron en 8 Abril 2013, 20:19 pm
Entiendo perfectamente ese tema, pero el problema, es que esa variable SIEMPRE debería estar definida. El señor Apache la inicializa...
Mira bien de cual variable te hablo: $_SERVER['HTTP_HOST']
Las variables $_SERVER siempre vienen inicializadas.


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: Wofo en 19 Abril 2013, 16:59 pm
¿Y si tienes mal configurado Apache?

No es que entienda mucho del tema, pero es una idea.


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: #!drvy en 20 Abril 2013, 16:59 pm
Citar
Porque causa no podría estar definida esa variable?

Si utilizas otros métodos para acceder al php que no implican un navegador moderno... osease, esta variable no esta definida si no envías la cabecera "HOST:" al servidor.

Saludos


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: Skeletron en 20 Abril 2013, 23:51 pm
Mil gracias por la respuesta!
el motor de Google capaz que haga lo mismo, no?
Que tan MALO sería hacer un "exit;" cuando hay ese error?


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: #!drvy en 21 Abril 2013, 00:10 am
Na GoogleBot no es.. el si que envía headers.. la verdad es que HOST: es una cabecera muy básica.. no hay muchos bots que no la envien xD.

Hasta el file_get_contents() de PHP envia el HOST: xD

PD: Una historia muy bonita sobre googlebot: http://googlewebmastercentral.blogspot.com.es/2008/03/first-date-with-googlebot-headers-and.html xD

Saludos


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: Skeletron en 21 Abril 2013, 23:16 pm
Bueno, muchas gracias por tu aporte. la verdad es que me has solucionado un tema que no encontré respuesta en ningun lugar.
Debería cortarles la conexion a esos "usuarios" que entran de ese modo.


Título: Re: Variable HTTP_HOST no definida. Porque?
Publicado por: Skeletron en 7 Mayo 2013, 02:13 am
Les comento que, luego de añadir esta linea a mi codigo:
if(!isset($_SERVER['HTTP_HOST']))
   die('Su browser es demasiado viejo. No envía la cabecera HOST. Descargue Chrome!');

Google Bot dejó de acceder a mi sitio web. Así que, es GOOGLE BOT quien no envía esa cabecera. WARNING! jeje