Entonces tengo el siguiente trozo de código:
Código:
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.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"); };
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:
Muchas gracias.<!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>
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.