Foros del Web » Programando para Internet » PHP »

error al meter un header:location

Estas en el tema de error al meter un header:location en el foro de PHP en Foros del Web. Hola he subido a 1and1 una base de datos y estoy realizando mis primeras conexiones. La consulta sql esta bien ya que si muestro con ...
  #1 (permalink)  
Antiguo 24/02/2012, 10:32
Avatar de PedroDesing  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 202
Antigüedad: 17 años
Puntos: 18
error al meter un header:location

Hola he subido a 1and1 una base de datos y estoy realizando mis primeras conexiones.

La consulta sql esta bien ya que si muestro con un echo los valores de $row[], me los muestra bien, el problema lo tengo cuando pongo el header:location. Me muestra el siguiente error

"Warning: Cannot modify header information - headers already sent by (output started at /xxx/admin/_login.php on line 13"


He leido algun tema con este error pero no me ha quedado muy claro. Les dejo mi codigo por si me pueden ayudar. muchas gracias

Código HTML:
<html>
<head>
	<title>Login de usuario</title>
</head>
<body>
	<table>
	<form action="_login.php" method="post">
		<tr><th class="titulo" colspan="2">Login de usuario</th></tr>
		<tr><td>Usuario</td><td><input class="text" type="text" name="usuario" /></td></tr>
		<tr><td>Clave</td><td><input class="text" type="password" name="clave" /></td></tr>
		<tr><td class="botones-centrados" colspan="2"><input id="guardar" type="submit" value="entrar"><input type="reset" value="borrar"></td></tr>
	</form>
	</table>
</body>
</html> 
y este es el codigo de _login.php:

Código PHP:
<?php
session_name
("acceso_todos");
session_start();
$usuario $_POST['usuario'];
$clave $_POST['clave'];

mysql_connect("xxx""xxx""xxx");
mysql_select_db("xxx");
$result mysql_query("select * from usuarios where usuario='".$usuario."' and clave='".$clave."' limit 1");

if(
$row mysql_fetch_array($result)){
    echo 
$row['usuario']."<br/>".$clave;
    
header('location:eee.html');
}
else{
    
header('location:login.php');
}
?>
__________________
pedrorodas.com próximamente! Permanezcan atentos
  #2 (permalink)  
Antiguo 24/02/2012, 11:02
Avatar de PedroDesing  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 202
Antigüedad: 17 años
Puntos: 18
Respuesta: error al meter un header:location

Me acabo de dar cuenta que en el else, es decir, en el caso de que los datos introducidos no sean correctos y por tanto no devuelva la consulta nada, si hace el header:location.

Solo da el warning en el caso en el que la consulta sql de vuelve una fila.

Así, aun entiendo menos
__________________
pedrorodas.com próximamente! Permanezcan atentos
  #3 (permalink)  
Antiguo 24/02/2012, 11:23
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: error al meter un header:location

el header location lo que hace es modificar las cabeceras del html, por lo tanto si existe algo que obligue al php (en este caso el echo) a enviar el html al navegador será imposible que el php modifique esos datos ya que como dije antes, son enviados y por lo mismo estan fuera del alcance.

puedes intentar usar ob_star y ob_end_flush.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: html, meter, mysql, sql, usuarios
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 15:11.