Redireccionar páginas con php

He creado una web y si página index muestra un formulario para introducir los datos de usuario y password, estos datos los mando a una página que se encarga de analizarlos y si son correctos envía al internauta a una página y si no lo son lo envía a otra. El código de la página que se encarga de comprobar los datos es este:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin título</title>
</head>
<body>
<?php
$conn=mysql_connect ("localhost","usuario","password");
//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuarios WHERE user='$user' and password='$password'";
//Ejecuto la sentencia
$rs=mysql_db_query ("basededatos",$ssql);
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: aplicacion.php");
}else {
//si no existe le mando otra vez a la portada
//echo "error";
//echo '<meta http-equiv="refresh" content="1; url=http://af3.micro-webs.com/index.php?errorusuario=si">';
header("Location: http://www.miotraweb.com/");
exit;
}
mysql_free_result($rs);
mysql_close($conn);
?>
</body>
</html>
Pues bien, no hay manera de que me redireccione la página a donde yo le digo. ¿Qué hago mal? Me estoy volviendo loco.

1 Respuesta

Respuesta
1
En el momento en el que se escribe cualquier parte de un documento html, se envían las cabeceras al ordenador cliente y ya no es posible usar la función header() de php.
Para solucionar el problema comienza tu código con "<?php", sin dejar ninguna línea ni espacio en blanco antes. Ejecuta código php sin enviar nada al ordenador cliente. Te pongo tu código modificado:
<?php
$conn=mysql_connect ("localhost","usuario","password");
$ssql = "SELECT * FROM usuarios WHERE user='$user' and password='$password'";
$rs=mysql_db_query ("basededatos",$ssql);
$valido = mysql_num_rows($rs)!=0;
mysql_free_result($rs);
mysql_close($conn);
if ($valido){
session_start();
session_register("autentificado");
$autentificado = "SI";
header ("Location: aplicacion.php");
}else {
header("Location: http://www.miotraweb.com");
exit;
}
?>
Este código comprueba $user y $password en la base de datos y si son correctos crea la sesión y pasa a la página aplicación.php. Pero si no son correctos pasa a www.miotraweb.com.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas