Estoy desesperado, en cuanto envío en formulario con el campo usuario vacío, me cambia el valor de su sesión, lo que no entiendo es porque.., porque no realiza el UPDATE al filtrar la validación mediante el if.., a continuación pego el code
Código PHP:
<?
session_start();
include("conexion.php");
$tabla="usuarios";
$tabla1="comunicaciones";
$usuario_actual=trim($_POST["usuario_actual"]);
$contrasena_actual=trim($_POST["contrasena_actual"]);
$correo_actual=trim($_POST["correo_actual"]);
$nombre=trim($_POST["nombre"]);
$apellidos=trim($_POST["apellidos"]);
$domicilio=trim($_POST["domicilio"]);
$cp=trim($_POST["cp"]);
$localidad=trim($_POST["localidad"]);
$provincia=trim($_POST["provincia"]);
$centro=trim($_POST["centro"]);
$telefono=trim($_POST["telefono"]);
$correo=trim($_POST["correo"]);
$usuario=trim($_POST["usuario"]);
$contrasena=trim($_POST["contrasena"]);
$repita_contrasena=trim($_POST["repita_contrasena"]);
// una vez recogidas todas las variables enviadas mediante POST
// comenzamos a validar el formulario
if(!empty($nombre)&&!empty($apellidos)&&!empty($correo)&&!empty($contrasena)&&!empty($repita_contrasena)){
if(is_numeric($cp)){
if(strlen($cp)==5){
if(is_numeric($telefono)){
if(strlen($telefono)>=7){
if(ereg("^([a-zA-Z0-9_\.-]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$",$correo)){
if(strlen($usuario)>=6){
if(ereg("^[a-zA-Z0-9_\.-]+$", $usuario)){
if(strlen($contrasena)>=6){
if(ereg("^[a-zA-Z0-9_\.-]+$", $contrasena)){
if($repita_contrasena==$contrasena){
// una vez validado el formulario actualizamos el registro de usuario
$sql="UPDATE $tabla SET nombre='$nombre', apellidos='$apellidos', domicilio='$domicilio', cp='$cp', localidad='$localidad', provincia='$provincia', centro='$centro', telefono='$telefono', correo='$correo', usuario='$usuario', contrasena='$contrasena' WHERE usuario='$usuario_actual' && contrasena='$contrasena_actual'";
mysql_query($sql, $conexion) or die("error en la consulta $sql ".mysql_error());
// una vez actualizado el registro de usuario actualizamos los registros de la tabla comunicaciones que comparte campos con la tabla de usuarios
$autor_nuevo=$nombre." ".$apellidos;
$sql="UPDATE $tabla1 SET usuario='$usuario', autor='$autor_nuevo', centro='$centro', correo='$correo' WHERE usuario='$usuario_actual' && correo='$correo_actual'";
mysql_query($sql, $conexion) or die("error en la consulta $sql ".mysql_error());
// modifico el valor de las sesiones referentes al usuario
$_SESSION["usuario"]="$usuario";
$_SESSION["contrasena"]="$contrasena";
$_SESSION["domicilio"]="$domicilio";
$_SESSION["cp"]="$cp";
$_SESSION["localidad"]="$localidad";
$_SESSION["provincia"]="$provincia";
$_SESSION["centro"]="$centro";
$_SESSION["telefono"]="$telefono";
$_SESSION["correo"]="$correo";
$_SESSION["nombre"]="$nombre";
$_SESSION["apellidos"]="$apellidos";
// una vez actualizados los registros redireccionamos al formulario editar el registro
header("Location:modificar_registro.php?mensajegeneral=1");
// si repita contraseña no contiene la misma cadena que contraseña
}else{
header("Location:modificar_registro.php?mensajerepitacontrasena=0");
}
// si la contraseña ingresada contiene caracteres inválidos
}else{
header("Location:modificar_registro.php?mensajecontrasena=0");
}
// si la contraseña ingresada contiene menos de 6 caracteres
}else{
header("Location:modificar_registro.php?mensajecontrasena=1");
}
// si el nombre de usuario ingresado contiene caracteres inválidos
}else{
header("Location:modificar_registro.php?mensajeusuario=1");
}
// si el nombre de usuario ingresado contiene menos de 6 caracteres
}else{
header("Location:modificar_registro.php?mensajeusuario=2");
}
// si el correo ingresado contiene caracteres inválidos
}else{
header("Location:modificar_registro.php?mensajecorreo=1");
}
// si el telefono ingresado contiene menos de 7 caracteres
}else{
header("Location:modificar_registro.php?mensajetelefono=0");
}
// si el telefono ingresado no es un número
}else{
header("Location:modificar_registro.php?mensajetelefono=1");
}
// si el código postal ingresado no tiene 5 caracteres
}else{
header("Location:modificar_registro.php?mensajecp=0");
}
// si el código postal ingresado no es un número
}else{
header("Location:modificar_registro.php?mensajecp=1");
}
// si no se han rellenado todos los cammpos del formulario
}else{
header("Location:modificar_registro.php?mensajegeneral=0");
}
mysql_close($conexion);
?>
Saludos.