Soy bastante nuevo en php
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
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
