header Location no redirecciona
Una de las posibles causas de que el header no redireccione es por haber mostrado algo por pantalla.
El header lo tendremos que colocar siempre en la primer linea del archivo, antes que cualquier tipo de salida (ya sea html, texto o espacios en blanco) Ejemplos
El header lo tendremos que colocar siempre en la primer linea del archivo, antes que cualquier tipo de salida (ya sea html, texto o espacios en blanco) Ejemplos
MAL
<html>
<head>
</head>
<body>
<?php header("Location: pagina.php") ?>
</body>
</html>
BIEN
<?php header("Location: pagina.php") ?>
<html>
<head>
</head>
<body>
</body>
</html>
Se puede redireccionar según condiciones, lo que no se puede es mostrar algo por pantalla antes del header.
if(esto)
{
header("Location: index.php");
}else{
header("Location: pagina.php");
}
Otras alternativas
Cuando el codigo header (‘Location:www.url.com’) no funciona en php ya sea por problemas del hosting u otros problemas existen otras formas de redirigir las paginas ahora veremos las siguientes:
1.- Insertando JavaScript y la etiqueta meta en php
JavaScript en php con temporizador
echo "<script language=\'JavaScript\'>"
."function redireccionar() { "
."window.location.href=\'http://www.davidariel.esy.es/blog'\;"
."}"
."setTimeout('redireccionar()', 4000);" //son milisegundos
."</script>";
En este ejemplo se inserta javascript en el php añadiendole un print con la etiqueta echo y concatenando con los puntos en este caso sera redirigido en 4 segundos
JavaScript en php sin temporizador
echo"<script language='javascript'>window.location.href="ejem.php"</script>"
En este caso no hay puntos por que todo va sobre una linea
Insertando meta en php
echo "<META HTTP-EQUIV='Refresh' CONTENT='2; url=menu.php'>"
<!-- <meta http-equiv="acción" content="segundos"; url="url destino" /> -->
2.- Ahora veremos ejemplos de redireccionamientos dentro de html
Script con temporizador
<html> <head> <script type="text/javascript"> function redireccionar(){ window.location.href="http://www.amigos-de-la-informatica.blogspot.com.es"; } setTimeout ("redireccionar()", 3000); //tiempo expresado en milisegundos </script> </head> <body> <p> Espere por favor, será redireccionado en 3 segundos.</p> </body> </html> En este caso el script esta dentro del head del html
En este caso el script esta dentro del body del html
<body>
<script type="text/javascript">
window.location.href="http://www.amigos-de-la-informatica.blogspot.com.es";
</script>
</body>
Y por ultimo utilizando la etiqueta meta dentro del html
<html> <head> <!-- <meta http-equiv="acción" content="segundos"; url="url destino" /> --> <meta http-equiv="Refresh" content="3"; url="http://www.amigos-de-la-informatica.blogspot.com.es";> </head> <body> <p>Hemos cambiado de pagina! Serás dirigido automáticamente en 3 segundos </p> </body> </html>