Foros del Web » Programando para Internet » PHP »

$http_server_vars['http_host']

Estas en el tema de $http_server_vars['http_host'] en el foro de PHP en Foros del Web. hola amigos, he estado buscando alguna varieble de servidor que me devuelva algo parecido a lo que me devolveia javascript si hago: location.hostname o sea, ...
  #1 (permalink)  
Antiguo 17/06/2003, 08:32
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
$http_server_vars['http_host']

hola amigos,

he estado buscando alguna varieble de servidor que me devuelva algo parecido a lo que me devolveia javascript si hago:

location.hostname

o sea, el nombre del dominio que el tio metio en la URL, pero no se si es esto que he encontrado:


$HTTP_SERVER_VARS['HTTP_HOST']


supongo que pensareis, "y por que no lo pruebas?", pues bien, por determinados motivos me resulta imposible de probar. Asi que si alguno me pudiera decir si esta variable me srive, o si no, cual me puede servir, pues se lo agradeciria mucho ....


Bueno colegas, gracias!



ToKaTa.
  #2 (permalink)  
Antiguo 17/06/2003, 08:46
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
Según vi en la siguiente página, puede que sí sea ese:
http://www.rinconastur.com/php/php12a.php
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #3 (permalink)  
Antiguo 17/06/2003, 09:13
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años
Puntos: 2
Tal vez la pregunta que te hagamos no sea, por que no pruebas?, mejor... por que no investigas?

http://mx.php.net/manual/en/reserved...riables.server
  #4 (permalink)  
Antiguo 17/06/2003, 09:56
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
a ver, al que hace las preguntas tan inteligentes, ¿crees que si no hubiera investigado podria haber hablado de la existencia de $HTTP_SERVER_VARS['HTTP_HOST']?....mire y lei mucho, pero el hecho de no poder probarlo como necesito, no me da un 100% de seguridad de que sea lo que busco..........colega......a veces, si uno no tiene nada bueno que decir.....es mejor callarse




ToKaTa.



P.D.: ferny gracias por la ayuda, digamos que aunque no estes seguro al 100%, al menos ya somos dos que estamos seguros casi al 100%
  #5 (permalink)  
Antiguo 17/06/2003, 10:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
TokaTa .. Si alguna respuesta no te interesa .. simplemente omitela .. Pero, el link que te dió DotNetDeveloper del manual de PHP .. ahí tienes la respuesta que te voy a dar.

Por lo demás .. estamos en el foro "PHP" aunque te parezca extraño .. no hemos de saber que te devuelve ese "location.hostname" de javascript .. Así que si mejor dices que es lo que te devuelve .. mejor se te podrá orientar.

Por el "nombre" del "hostname" .. podría ser:

gethostbyaddr($_SERVER['REMOTE_ADDR'])

Eso te devuelve .. de una IP (que se obtiene con REMOTE_ADDR de variable de servidor) .. ejemplo 12-23-12.dial-nosecuantos.es .. por poner un ejemplo ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 17/06/2003 a las 10:47
  #6 (permalink)  
Antiguo 17/06/2003, 11:43
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
vale, tu mismo, tienes PARTE de razon.......de todas formas paso de meterme ahora en ningun tira y afloja, que tengo cosas mejores que hacer.......


Bueno, te explico "a fondo" mi problema a ver si me puedes ayudar a dar alguna pista.

Tengo contratado un servidor privado sobre el que tengo creados varios dominios virtuales. Esto significa que en las tanlas de DNS hay varios dominios que estan a puntando a la ip de mi servidorprivado. Si metes:

www.midominio1.com --> te llevarta a mi ip
www.midominio2.com --> te llevarta a mi ip
www.midominio3.com --> te llevarta a mi ip


Ahora supon que tengo un dominio a puntando a mi ip y que no tengo definido ese servidor virtual en la maquina. Esta peticion la tomara el servidor por defecto.

Bien, aparte de dominios virtuales tengo varias redirecciones. O sea, el tio mete:

www.midominio5.com -- > le lleva a mi ip y desde aqui lo redirijo a otra web mediante html.

Cuando alguien mete un dominio para el que realmente no tengo creado ningun servidor virtual, esta peticion se la trabajo el servidor por defecto. En este servidor por defecto tengo un html que tiene un codigo javascript. Lo que hace el codigo javascript es ver que dominio metio el tio, entonces lo compara y reenvia a odnde sea. Un ejemplo:

Código:
	
if (location.hostname == "www.midominio5.com")
      document.location.href = "http://www.otrodominio.com";
El problema con esto es que me cambia la direccion del navegador, y no quiero que la cambie. Por todo esto pense que si puedo hacer con PHP lo que hago con javascript, ya no tendria el problema. Si con php puedo saber que dominio me coloco en el tio en la barra de direccion, entonces puedo modificar el parametro "location" del "header" y reaenviarlo a donde quiero. Y si funciona igual que en ASP, la direccion de nacegador se quedara como la metio el tio.


Y bueno, para los incredulos, por que no puedo probar esto?. Bien, mi script, el que redirecciona, el que tiene el javascript, es un "index.html". Esto es un problema si vivis en españa y disfrutais del proxy-cache de telefonica, que te hace muy dificil ver actualizaciones. Me puedo empeñar en borrar el "index.html" y llmarlo "index.php", pero hasta que a ellos no les de por actualizar la cache, yo siempre vere el "index.php". Y para el que lo este pensando, no, no funciona el CTR+actualizar, ni na por el estilo....



Bueno, eso es to, complicado de explocar y supongo que no se habran enterado de la mitad, pero visto que el unico que cogio la idea original con mi mensaje original fue ferny, a ver si a hora hay mas suerte......



Sea como fuere, gracias tambien por tu interes Cluster



ToKaTa.
  #7 (permalink)  
Antiguo 17/06/2003, 12:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
El problema con esto es que me cambia la direccion del navegador, y no quiero que la cambie. Por todo esto pense que si puedo hacer con PHP lo que hago con javascript, ya no tendria el problema. Si con php puedo saber que dominio me coloco en el tio en la barra de direccion, entonces puedo modificar el parametro "location" del "header" y reaenviarlo a donde quiero. Y si funciona igual que en ASP, la direccion de nacegador se quedara como la metio el tio.
Si dices que entra al domino .. el HTTP_HOST te servirá .. pues te devuelve el nombre de dicho domino en el que estamos (y que llegamos por tu rediccionador de DNS). Usando una simple expresión regulara . podrías redireccionar todo lo que entre a www.sito.tal . incluso www.sitio.tal/algo.html .. Recueda que ahora tu index .. será .php ...

Código PHP:
if (!@eregi($_SERVER['HTTP_HOST'],"www.sitio.tal")){
    
header ("location: http://www.nosedonde.tal");
    exit;

Pero .. el URL se modifica con la redirección que hagas pues se están cambiando las cabeceras HTTP del navegador ...

Podrías hacer por ejemplo:

Código PHP:
if (!@eregi($_SERVER['HTTP_HOST'],"www.sitio.tal")){
include(
"http://www.sitio_destiono.tal");

Pero .. esto es necesario que lo pruebes .. así q prueba a usar cabeceras para NO caché en tus páginas a ver si te saltas a ese proxy ...

Ejemplo:
Código PHP:
<?
  
// No almacenar en el cache del navegador esta página.
        
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");                     // Expira en fecha pasada
        
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");        // Siempre página modificada
        
header("Cache-Control: no-cache, must-revalidate");                   // HTTP/1.1
        
header("Pragma: no-cache");                                           // HTTP/1.0
?>
Eso al principio de tus páginas (seran .php ahora) .. pero puedes emplear los equivalentes en <meta tag> ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 17/06/2003, 13:13
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años
Puntos: 2
Cita:
Mensaje Original por ToKaTa
[B]a ver, al que hace las preguntas tan inteligentes, ¿crees que si no hubiera investigado podria haber hablado de la existencia de $HTTP_SERVER_VARS['HTTP_HOST']?....mire y lei mucho, pero el hecho de no poder probarlo como necesito, no me da un 100% de seguridad de que sea lo que busco..........colega......a veces, si uno no tiene nada bueno que decir.....es mejor callarse
Mira man! en tu primer mensaje no dices que investiagste o si? Y yo no soy adivino como para saber si investigaste o eres un clásico forista huevon que antes de preguntar no ivestiga. Para la otra di lo que has hecho y te evitas respuestas como la mia. Que la doy y la seguire dando siempre que me encuentre con foristas que no den rastro de haber INVESTIGADO antes.



Editando:

Me retracto, no lei esto:
Cita:
he estado buscando alguna varieble de servidor que me devuelva algo parecido a lo que me devolveia javascript si hago:

Última edición por DotNetDeveloper; 17/06/2003 a las 13:20
  #9 (permalink)  
Antiguo 17/06/2003, 14:30
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 1 mes
Puntos: 2
ey DotNetDeveloper!, no hay problema colega

y muchas gracias cluster, mañana mismo en el curro me meto a probar


Gracias a todos!



ToKaTa.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.