Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/05/2010, 11:19
Weahl
 
Fecha de Ingreso: mayo-2010
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
Problema con header

Tengo una pagina de registro, donde el usuario introduce su nombre, pass, email y demás.

Entonces tengo el siguiente trozo de código:

Código:
if($row= mysql_fetch_array($sql))
		{
			header("refresh:5; registro.php");
			echo "Error, el usuario ya existe";
		}
		else
		{
			$sql= mysql_query("INSERT INTO usuario (usuario, pass, email) VALUES ('$usuario', '$pass', '$email')") OR DIE ("Error al registrar los datos");
		};
Lo que hace es buscar en la BBDD si coincide el nombre de usuario con alguno en la BBDD, si lo hace devolvería "Error, el usuario ya existe" y pasados 5 segundos debería redirigirte a la misma página de registro.

El caso es que me da el siguiente error:

Warning: Cannot modify header information - headers already sent by...

He estado buscando y he encontrado soluciones que no me han servido, como quitar los espacios antes y después de las etiquetas <?php y ?>, poner esto al principio ob_start(); y esto otro al final del php ob_end_flush(); y nada, no sé que mas hacer.


Os dejo el código completo por si queréis echarle un vistazo (He resaltado en negrita la parte de php):

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<link rel="stylesheet" type="text/css" href="./estilos/alineaciones.css" />
<link rel="stylesheet" type="text/css" href="./estilos/cabecera.css" />
<link rel="stylesheet" type="text/css" href="./estilos/cuerpo.css" />

<style type="text/css">
form	{
	font-weight:bold;
}
</style>
</head>

<body>
<?php
include("datosconexion.php");
$conexion=mysql_connect($dbhost, $dbuser, $dbpass) OR DIE ("Conexion fallida con la base de datos");
$bd=mysql_select_db($db, $conexion) OR DIE ("Base de datos incorrecta");

if(isset($_POST['registro']))
{
	$usuario= $_POST['usuario'];
	$pass= $_POST['pass'];
	$pass_= $_POST['pass_'];
	$email= $_POST['email'];
	$email_= $_POST['email_'];
	
	if(isset($usuario))
	{
		$sql= mysql_query("SELECT usuario FROM usuario WHERE usuario = '".$usuario."'");
		
		if($row= mysql_fetch_array($sql))
		{
			header("refresh:5; index.html");
			echo "Error, el usuario ya existe";
		}
		else
		{
			$sql= mysql_query("INSERT INTO usuario (usuario, pass, email) VALUES ('$usuario', '$pass', '$email')") OR DIE ("Error al registrar los datos");
		};
	};
}
else
{
?>
<table class="tblcabecera">
<tr>
	<td id="tdcbsup">
<tr>
	<td id="tdcb1">
	<td id="tdcbimg"><img src="Img/logo.PNG" alt="Manuales Online" width="150" height="120"/>
	<td id="tdcb2"><a href="">Entrar</a> <a href="registro.php">Registro</a>
	<td id="tdcb3"> Barra de busqueda
</table>

<br /><br /><br />


<table border="1">
<tr>
	<td>
		¿Ya estas registrado? Accede a nuestro contenido poniendo tu usuario y contraseña.
		<form method="post" action="registro.php">
			<table>
			<tr>
				<td class="right">Nombre de usuario:
				<td><input type="text" name="usuario_l" maxlength="18"><br>
			<tr>
				<td class="right">Contraseña:
				<td><input type="password" name="pass_l" maxlength="24"><br>
			</table>
	<td>
		¿Es tu primera vez? ¡Registrate y accede a todos los contenidos de la Web!
			<table>
			<tr>
				<td class="right">Nombre de usuario:
				<td><input type="text" name="usuario" maxlength="18"><br>
			<tr>
				<td class="right">Contraseña:
				<td><input type="password" name="pass" maxlength="24"><br>
			<tr>
				<td class="right">Confirmar contraseña:
				<td><input type="password" name="pass_" maxlength="24"><br>
			<tr>
				<td class="right">E-mail:
				<td><input type="text" name="email" maxlength="50"><br>
			<tr>
				<td class="right">Confirmar e-mail:
				<td><input type="text" name="email_" maxlength="50"><br>
			</table>
	
<tr>
	<td colspan="2">
			<input type="submit" value="Enviar" name="registro">
		</form>
		
</table>
<?php
};
?>
</body>
</html>
Muchas gracias.



EDITO: Encontré el error, resulta que el archivo que incluía, datosconexion.php, tenía HTML y ahí estaba el error, así que lo he quitado y aparte he creado otro php llamado validación y desde ahí redirigiría a registro.php en caso de que ya existiera el usuario y así sucesivamente jeje.

Última edición por Weahl; 06/05/2010 a las 12:04