Tengo una pregunta y es que si tengo un documento php con lo siguiente:
<?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.
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í:
<?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:
<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.
<?php
die(header('Location: http://www.google.com'));
?>
<html>
<head>
</head>
<body>
lalala
</body>
</html>
Resultado al ser bloqueado:
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.
https://addons.mozilla.org/es-ES/firefox/addon/noredirect/
Saludos
Ya he probado, testeado y me va perfecto.
Mil gracias.
Por eso siempre se ejecuta exit(); luego de una redireccion por header....
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.