Menú Principal

Header en PHP

Iniciado por dimitrix, 23 Enero 2012, 02:52 AM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

Tengo una pregunta y es que si tengo un documento php con lo siguiente:

Código (php) [Seleccionar]

<?php
 header
("Location: http://www.google.es/");
?>


<html>
Hola a todos...
</html>



Si lo ejecuto, el servidor me enviará la cabecera para que se envíe el navegador a 'google.es', no obstante mi pregunta es, si el SERVIDOR también envía el 'Hola a todos', aunque no se muestre.

Lo digo por temas de seguridad, gracias.




#!drvy

#1
Que tal dimitrix   :P

Hay un complemento muy útil para firefox que te permite comprobar precisamente eso..
He estado haciendo algunas pruebas y parece que si. Si bloqueas las re-direcciones HTTP, el html se ejecuta.

Lo probé así:

Código (php) [Seleccionar]
<?php
header
('Location: http://www.google.com');
?>

<html>
<head>
</head>
<body>
 Si consigo ver esto, soy un super juanker!!!!
</body>
</html>


Y el resultado al bloquear la re-dirección HTTP fue este:
Código (url) [Seleccionar]

<html>
<head>
</head>
<body>
 Si consigo ver esto, soy un super juanker!!!!
</body>
</html>


Ahora llega lo que interesa,

Sabemos que PHP se ejecuta mucho antes que el HTML. Por tanto, si hacemos que PHP se muera (die) con la re-dirección en teoría no debería mostrar el html..
En teoría y en la practica también xD.

Código (php) [Seleccionar]
<?php
die(header('Location: http://www.google.com'));
?>

<html>
<head>
</head>
<body>
lalala
</body>
</html>


Resultado al ser bloqueado:
Código (url) [Seleccionar]


Osease, pagina en blanco xD.

El complemento en cuestión se llama "NoReddirect". Lo configuras con una lista de sitios que no quieras que te re-direcciónen (en mi caso localhost xD) y te muestra una alerta del tipo "HTTP/302: url", cada vez que la pagina te quiera re-direcciónar.
Código (url) [Seleccionar]
https://addons.mozilla.org/es-ES/firefox/addon/noredirect/

Saludos

dimitrix

Ya he probado, testeado y me va perfecto.

Mil gracias.




[u]nsigned

Por eso siempre se ejecuta exit(); luego de una redireccion por header....

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

dimitrix

Cita de: El As del Club Paris en  7 Febrero 2012, 02:46 AM
Por eso siempre se ejecuta exit(); luego de una redireccion por header....

Eso de siempre... xDD

Realmente es la primera vez que lo veo^^

Pero está bien saberlo.