Soy bastante nuevo en php y tengo un problema que no puedo resolver.
Estoy validando los datos de un formulario. Cuando hay errores quiero redireccionar al form de nuevo aclarando esos errores.
El caso es que al redireccionar obtengo el siguiente error:
El problema apareció cuando subí todo al servidor. Trabajando offline andaba todo perfecto.
Averiguando un poco veo que es bastante común pero no lo resuelvo.
He leído http://www.cristalab.com/foros/viewtopic.php?p=212119#212119 y a partir de eso revisé el código buscando espacios en blanco (no hay), echos (no hay), includes con HTML (no uso, tenía un require para definir las constantes de conexión a MySQL pero lo saqué y ahora las constantes están al ppio. del código).
Para colmo, la página que origina el error de encabezado es la misma que hace la redirección (registro_validar.php).
Por si alguien tiene el tiempo y la voluntad de mirarlo, pongo el código por si se me está escapando algo:
Código :
<?php define ('SQL_HOST', 'xx.xx.xx.xx'); define ('SQL_USER', 'xxx'); define ('SQL_PASS', 'xxxxxx'); define ('SQL_DB', 'xxx'); $conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or die ('No fue posible conectar '.mysql_error()); mysql_select_db(SQL_DB, $conn); $error = ''; $apellido = trim($_POST['apellido']); if (empty($apellido)) { $error .= "Debe+completar+su+Apellido%21%0D%0A"; } $nombre = trim($_POST['nombre']); if (empty($nombre)) { $error .= "Debe+completar+su+Nombre%21%0D%0A"; } $usuario = trim($_POST['usuario']); if (empty($usuario)) { $error .= "Debe+completar+su+Nombre+de+Usuario%21%0D%0A"; } else{ $sql = "SELECT alu_usuario FROM cur_alumnos WHERE alu_usuario = '".$usuario."'"; $result = mysql_query($sql) or die ('Consulta no valida '.mysql_error()); if (mysql_num_rows($result) > 0) { $error .= "El+Nombre+de+Usuario+solicitado+ya+esta+en+uso%21%0D%0A"; } } $password = trim($_POST['password']); if (empty($password)) { $error .= "Debe+completar+su+Contraseña%21%0D%0A"; } $edad = trim($_POST['edad']); if (!empty($edad)) { if (!is_numeric($edad)) { $error .= "Debe+expresar+su+Edad+en+numeros%21%0D%0A"; } } $sexo = $_POST['sexo']; $direccion = trim($_POST['direccion']); if (empty($direccion)) { $error .= "Debe+completar+su+Direccion+Postal%21%0D%0A"; } $ciudad = trim($_POST['ciudad']); if (empty($ciudad)) { $error .= "Debe+completar+su+Ciudad+o+Pueblo%21%0D%0A"; } $provincia = trim($_POST['provincia']); $pais = $_POST['pais']; if (empty($pais)) { $error .= "Debe+seleccionar+un+Pais%21%0D%0A"; } $telefono = $_POST['telefono']; $email = trim($_POST['email']); if (empty($email)) { $error .= "Debe+completar+su+direccion+de+EMail%21%0D%0A"; } if (!empty($error)) { header("location:registro.php?error=".$error); } else { $sql = "INSERT INTO cur_alumnos ( alu_apellido, alu_nombre, alu_usuario, alu_password, alu_edad, alu_sexo, alu_direccion, alu_ciudad, alu_provincia, alu_pais, alu_telefono, alu_email ) VALUES ('" .$apellido."','" .$nombre."','" .$usuario."','" .$password."','" .$edad."','" .$sexo."','" .$direccion."','" .$ciudad."','" .$provincia."','" .$pais."','" .$telefono."','" .$email."')"; if (isset($sql) && !empty($sql)) { //DEBUG //echo "<!-- ".$sql."-->"; $result = mysql_query($sql) or die('Error de Consulta, ver DEBUG '.mysql_error()); } $fin_frase = ''; if ($sexo == 'femenino') { $fin_frase .= 'a a Pléroma '.$nombre.'!'; } else { $fin_frase .= 'o a Pléroma '.$nombre.'!'; } ?>
Si alguien me puede dar una mano estaré muy agradecido.
Perdón por lo extenso
Saludos,
rakidwam