Foros del Web » Programando para Internet » PHP »

Problemas con cabeceras http

Estas en el tema de Problemas con cabeceras http en el foro de PHP en Foros del Web. Muy buenas. Estoy intentando que solo se acceda a una página solo mediante una dirección IP. Hasta aquí, no hay problema, éste está en que, ...
  #1 (permalink)  
Antiguo 02/06/2007, 05:17
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Busqueda Problemas con cabeceras http

Muy buenas.

Estoy intentando que solo se acceda a una página solo mediante una dirección IP. Hasta aquí, no hay problema, éste está en que, cuando no sea la indicada IP, tire un error 404, y esto, no funciona.

Código PHP:
    ...
    if(
$ip!=="00.00.00.00") {
    
header("HTTP/1.1 404 Not Found");
    exit();
    } else... 
No hay nada antes del header, es decir, nada de html, ningún output, ningún espacio en blanco. El condicional funciona bien, porque de hecho solo falla que salga el error 404.

¿Alguien sabe qué puede estar pasando?
Un saludo y gracias.
  #2 (permalink)  
Antiguo 02/06/2007, 10:20
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problemas con cabeceras http

1.- ¿PHP está como CGI o como módulo? si te fijás en la página de la función header, los comentarios de los usuarios indican que según el modo en que esté trabajando PHP es el modo en que tenés que mandar la cabecera. (A veces tenés que usar Status en vez de HTTP/1.1)

2.- Necesitás redireccionar al ErrorDocument para que te muestre una página de error, de lo contrario simplemente tendrás una página completamente en blanco. Y es en el ErrorDocument donde se aconseja "tirar" la cabecera de error.

El ErrorDocument se configura en el archivo .htaccess .

Para más información, fijate por acá: http://www.php.net/header


Saludos.
  #3 (permalink)  
Antiguo 02/06/2007, 10:31
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Problemas con cabeceras http

Gracias por la respuesta alvlin.

Ahora probaré a usar Status y te comento.

Lo que no entiendo, es lo de tener que redireccionar con ErrorDocument. Si envío una cabecera, con error 404, ¿no debería de salir en el explorar el típico "página no encontrada"? No quiero personalizar el error (que hasta ahora estaba seguro que es para lo que servía redireccionar los errores con .htaccess), simplemente, que salga un error 404, sin mas.

Bueno, a ver si me va con status.
  #4 (permalink)  
Antiguo 02/06/2007, 10:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Problemas con cabeceras http

Nada, sigue igual. Ya sea con status o con http/1.1. :
  #5 (permalink)  
Antiguo 02/06/2007, 18:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problemas con cabeceras http

Cita:
Iniciado por Bonez Ver Mensaje
Lo que no entiendo, es lo de tener que redireccionar con ErrorDocument. Si envío una cabecera, con error 404, ¿no debería de salir en el explorar el típico "página no encontrada"?
No, no funciona así. El código 404 no provoca una redirección, como sí lo hace la cabecera Location o los códigos de error 300 (301 Moved Permanently, 302 Found).
La cabecera con código de error 404 simplemente dice eso, que la página tira ese error.
No fuerza a cargar una página x ni provoca que el servidor envíe un documento en particular.

Sin embargo yo también me equivoqué, ya que para "falsear" un 404 tenés que generar todo en la misma página (la cabecera de error y el código html)

Creo que deberías encarar una redirección con htaccess y mod_rewrite, en el documento al que redirigís le ponés la cabecera de error y el html que quieras:

un ejemplo:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !XXX\.XXX\.XXX\.XXX
RewriteRule (.*) http://[tuPagina]/[tuPaginaDeError]

Donde XXX\.XXX\.XXX\.XXX es la IP a la que querés permitir el acceso, y tuPaginaDeError es alguna página que envíe la cabecera 404 y muestre el html que quieras.


Saludos.
  #6 (permalink)  
Antiguo 06/06/2007, 01:36
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Problemas con cabeceras http

Gracias de nuevo alvlin.

Pues pensaba que con una cabecera, ya forzaba el error 404 y que simplemente no se abría nada (que de hecho, abrir abre una página en blanco, sin nada).

Lo que no entiendo, es por qué si quiero tirar un 404, tenga que poner html... Me descuadró eso.

Otra cosa, estoy usando el rewrite ya para la página, espero que poniéndole esa condición no pare de leer ahí y las demás reglas no las siga.

Voy a probar a ver.

Gracias y un saludo.
  #7 (permalink)  
Antiguo 06/06/2007, 06:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problemas con cabeceras http

Pues hay que poner algo de html para mostrarle al usuario que se encontró con un 404, ¿no?

Después de todo, la página por defecto del apache contiene html
  #8 (permalink)  
Antiguo 06/06/2007, 11:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: Problemas con cabeceras http

Cita:
Iniciado por Bonez Ver Mensaje
Gracias de nuevo alvlin.

Pues pensaba que con una cabecera, ya forzaba el error 404 y que simplemente no se abría nada (que de hecho, abrir abre una página en blanco, sin nada).

Lo que no entiendo, es por qué si quiero tirar un 404, tenga que poner html... Me descuadró eso.

Otra cosa, estoy usando el rewrite ya para la página, espero que poniéndole esa condición no pare de leer ahí y las demás reglas no las siga.

Voy a probar a ver.

Gracias y un saludo.
Bueno, de hecho, todas las peticiones devuelven un resultado (exc. algunos casos intencionados). Las páginas "normales" (Status: 200 OK) devuelven un HTML, igual que las 3XX (300 Moved, etc) o las 4XX (404 Not Found, 403.X Forbidden...), que devuelven un HTML diciendo que no se encuentra la página correcta para un Status 200, así que saca un 404 y esta página; o las 5XX (500 Internal Server Error, típica) devuelve un HTML diciendo <h1>Internal Server error</h1>Please email the webmaster o lo que sea.


Un saludo!
  #9 (permalink)  
Antiguo 07/06/2007, 04:49
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Problemas con cabeceras http

Hasta ahora, siempre que he hecho algo similar, el navegador me mostraba una página diciendo que no encuentra dicha página, de ahí mis dudas, no sé.

Queda aclarado eso entonces, muchas gracias a los dos.
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 07:31.