Tengo un problema en un código para validar los datos de un usuario registrado.
Introduzco los datos correctos sin embargo no me deja continuar. Les muestro los códigos:
Tengo el siguiente formulario para ingresar los datos del usuario a la bd.
Código HTML:
<form action="usuario.php" method="post" name="registra-form" id="valida-form"> <div class="title-forms">Configuración de Usuarios</div> <input type="text" name="usuario" id="usuario" class="adaptive-input-b" placeholder="Usuario" required> <input type="password" name="password" id="password" class="adaptive-input-b" placeholder="Password" required> <input type="password" name="confirma" id="confirm" class="adaptive-input-b" placeholder="Confirmar Password" required> <input type="email" name="email" id="email" class="adaptive-input-b" placeholder="Correo electrónico" required> <select name="tipoUser" id="tipoUser" class="adaptive-input-b"> <option value="0">:: Seleccione el tipo de usuario ::</option> <option value="General">General</option> <option value="Administrativo">Administrativo</option> <option value="Normal">Normal</option> </select> <input type="submit" name="enviar-usu" id="enviar-usu" class="adaptive-btn" value="AGREGAR"> <input type="submit" name="borrar-usu" id="borrar-usu" class="adaptive-btn" value="ELIMINAR"> <input type="submit" name="cambiar-usu" id="cambiar-usu" class="adaptive-btn" value="CAMBIAR"> <input type="submit" name="ver-usu" id="ver-usu" class="adaptive-btn" value="BUSCAR"> </form>
Código PHP:
if(isset($_POST['enviar-usu'])){
$usuario = $_POST['usuario'];
$password = $_POST['password'];
$email = $_POST['email'];
$codifPass = md5($password);
$sqlInsertUsuario = mysql_query("Insert into gb_usuarios(gbuser_usuario, gbuser_password, gbuser_email, gbuser_tipo) Values ('$usuario', '$codifPass', '$email', '$_POST[tipoUser]')");
$mensaje = 'El usuario ha sido agregado a la tabla de Usuarios';
}
Usuario: Administrador
Password: gb13admin que resultó codificado en 8f8a2f654b442d33c1a9679ee2a45464
Correo: [email protected]
Tipo: General
Hasta ahí todo bien, ahora el formulario del login
Código HTML:
<form action="login.php" method="post"> <input type="text" name="user" id="user" class="adaptive-input-a" placeholder="Nombre de usuario" required /> <input type="email" name="email" id="email" class="adaptive-input-a" placeholder="Correo electrónico" required /> <input type="password" name="password" id="password" class="adaptive-input-a" placeholder="Password" required /><br /> <span class="format-textos-login"><?php echo $errorSession . ' ' . $msjError; ?></span><br /> <input type="submit" name="conectar" id="conectar" class="adaptive-btn" value="CONECTAR"> </form>
Código PHP:
function variablesSeguras($variable){
$variable = addslashes(trim($variable));
return $variable;
}
if(isset($_POST['conectar'])) {
if(!ctype_alnum($_POST['user'])){
$msjError = 'Sólo se permiten caracteres A-Z, a-z, 0-9';
} else {
$login = variablesSeguras($_POST['user']); }
if(!ctype_alnum($_POST['password'])){
$msjError = 'Sólo se permiten caracteres A-Z, a-z, 0-9';
} else {
$passw = variablesSeguras($_POST['password']);
$passCod = md5(trim($passw));
}
if(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['email'])) {
$msjError = 'Su email no es válido';
} else {
$email = variablesSeguras($_POST['email']);
}
$sqlSelectUser = mysql_query("Select * from gb_usuarios Where gbuser_usuario = '$login' and gbuser_password = $passCod and gbuser_email = '$email'");
$rowSelectUser = mysql_fetch_array($sqlSelectUser);
$_login_a = $rowSelectUser['gbuser_usuario'];
$_login_b = $rowSelectUser['gbuser_password'];
$_login_c = $rowSelectUser['gbuser_email'];
$_login_d = $rowSelectUser['gbuser_tipo'];
if($login == $_login_a && $passw == $_login_b && $email == $_login_c){
$_SESSION['estado'] = "logueado";
$_SESSION['usuario'] = $_login_a;
$_SESSION['tipo'] = $_login_d;
header('Location:index.php');
} elseif($login != $_login_a || $passw != $_login_b || $email != $_login_c) {
$errorSession = "Los datos proporcionados son incorrectos.";
}
}
¿Alguien sabe si estoy cometiendo algún error? De antemano agradezco por sus comentarios.
Saludos!