Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5c1fa24ebf | |||
| 35611746a6 |
+136
-6
@@ -4,8 +4,8 @@ if (session_status() === PHP_SESSION_NONE) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Comprobación de sesión
|
// Comprobación de sesión
|
||||||
$isLoggedIn = isset($_SESSION['usuario']) && !empty($_SESSION['usuario']);
|
$isLoggedIn = isset($_SESSION['idUsuario']) && !empty($_SESSION['idUsuario']);
|
||||||
$username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
$username = $isLoggedIn ? $_SESSION['nombreUsuario'] : '';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!-- Bootstrap 5 CSS -->
|
<!-- Bootstrap 5 CSS -->
|
||||||
@@ -15,6 +15,7 @@ $username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
|||||||
<!-- Google Fonts para estilo Kahoot -->
|
<!-- Google Fonts para estilo Kahoot -->
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Fredoka:wght@400;600;700&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Fredoka:wght@400;600;700&display=swap" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="css/index.css">
|
<link rel="stylesheet" href="css/index.css">
|
||||||
|
<script src="js/jquery-4.0.0.min.js"></script>
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
|
|
||||||
@@ -89,7 +90,7 @@ $username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
|||||||
<label for="loginEmail">Correo electrónico</label>
|
<label for="loginEmail">Correo electrónico</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
<input type="password" class="form-control border-dark" id="loginPassword" name="password" placeholder="Contraseña" required>
|
<input type="password" class="form-control border-dark" id="loginPassword" name="contrasena" placeholder="Contraseña" required>
|
||||||
<label for="loginPassword">Contraseña</label>
|
<label for="loginPassword">Contraseña</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
@@ -121,7 +122,7 @@ $username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
|||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<form id="formRegistro">
|
<form id="formRegistro">
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
<input type="text" class="form-control border-dark" id="regNombre" name="nombre" placeholder="Nombre" required>
|
<input type="text" class="form-control border-dark" id="regNombre" name="nombreUsuario" placeholder="Nombre" required>
|
||||||
<label for="regNombre">Nombre</label>
|
<label for="regNombre">Nombre</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
@@ -129,11 +130,11 @@ $username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
|||||||
<label for="regEmail">Correo electrónico</label>
|
<label for="regEmail">Correo electrónico</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
<input type="password" class="form-control border-dark" id="regPassword" name="password" placeholder="Contraseña" required>
|
<input type="password" class="form-control border-dark" id="regPassword" name="contrasena" placeholder="Contraseña" required>
|
||||||
<label for="regPassword">Contraseña</label>
|
<label for="regPassword">Contraseña</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
<input type="password" class="form-control border-dark" id="regPasswordConfirm" name="passwordConfirm" placeholder="Confirmar contraseña" required>
|
<input type="password" class="form-control border-dark" id="regPasswordConfirm" name="contrasenaConfirm" placeholder="Confirmar contraseña" required>
|
||||||
<label for="regPasswordConfirm">Confirmar contraseña</label>
|
<label for="regPasswordConfirm">Confirmar contraseña</label>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="orden" value="registrar">
|
<input type="hidden" name="orden" value="registrar">
|
||||||
@@ -147,3 +148,132 @@ $username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
// Registro
|
||||||
|
$('#botonAceptarRegistro').click(function(event){
|
||||||
|
event.preventDefault();
|
||||||
|
console.log('hola');
|
||||||
|
let nombreUsuario = $('#regNombre').val().trim();
|
||||||
|
let email = $('#regEmail').val().trim();
|
||||||
|
let contrasena = $('#regPassword').val();
|
||||||
|
let contrasenaConfirmacion = $('#regPasswordConfirm').val();
|
||||||
|
|
||||||
|
// Limpiamos errores anteriores
|
||||||
|
$('#regNombre').removeClass('is-invalid');
|
||||||
|
$('#regEmail').removeClass('is-invalid');
|
||||||
|
$('#regPassword').removeClass('is-invalid');
|
||||||
|
$('#regPasswordConfirm').removeClass('is-invalid');
|
||||||
|
$('#errorRegistro').text('');
|
||||||
|
|
||||||
|
// Comprobamos que las contraseñas coincidan
|
||||||
|
if(contrasena !== contrasenaConfirmacion){
|
||||||
|
|
||||||
|
$('#regPassword').addClass('is-invalid');
|
||||||
|
$('#regPasswordConfirm').addClass('is-invalid');
|
||||||
|
|
||||||
|
$('#errorRegistro').text('Las contraseñas no coinciden.');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
method: "POST",
|
||||||
|
url: "controladores/controladorUsuario.php",
|
||||||
|
data: {
|
||||||
|
'nombreUsuario': nombreUsuario,
|
||||||
|
'email': email,
|
||||||
|
'contrasena': contrasena,
|
||||||
|
'orden': 'registrarUsuario'
|
||||||
|
}
|
||||||
|
}).done(function(respuesta){
|
||||||
|
console.log(respuesta);
|
||||||
|
respuesta = JSON.parse(respuesta);
|
||||||
|
if(respuesta.error){
|
||||||
|
|
||||||
|
$('#errorRegistro').text(respuesta.error);
|
||||||
|
|
||||||
|
// Marcamos los campos si hay error
|
||||||
|
$('#regNombre').addClass('is-invalid');
|
||||||
|
$('#regEmail').addClass('is-invalid');
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
// Registro correcto
|
||||||
|
$('#errorRegistro')
|
||||||
|
.removeClass('text-danger')
|
||||||
|
.addClass('text-success')
|
||||||
|
.text(respuesta.exito);
|
||||||
|
|
||||||
|
// Limpiamos formulario
|
||||||
|
$('#formRegistro')[0].reset();
|
||||||
|
|
||||||
|
// Cerramos modal después de un segundo
|
||||||
|
setTimeout(function(){
|
||||||
|
location.reload();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
}); // Fin función ajax
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Login
|
||||||
|
$('#botonAceptarLogin').click(function(event){
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
let email = $('#loginEmail').val().trim();
|
||||||
|
let contrasena = $('#loginPassword').val();
|
||||||
|
|
||||||
|
// Limpiamos errores anteriores
|
||||||
|
$('#loginEmail').removeClass('is-invalid');
|
||||||
|
$('#loginPassword').removeClass('is-invalid');
|
||||||
|
$('#errorLogin').text('');
|
||||||
|
|
||||||
|
// Comprobación básica
|
||||||
|
if(email === '' || contrasena === ''){
|
||||||
|
|
||||||
|
$('#errorLogin').text('Todos los campos son obligatorios.');
|
||||||
|
|
||||||
|
if(email === ''){
|
||||||
|
$('#loginEmail').addClass('is-invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contrasena === ''){
|
||||||
|
$('#loginPassword').addClass('is-invalid');
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
method: "POST",
|
||||||
|
url: "controladores/controladorUsuario.php",
|
||||||
|
data: {
|
||||||
|
'email': email,
|
||||||
|
'contrasena': contrasena,
|
||||||
|
'orden': 'comprobarUsuario'
|
||||||
|
}
|
||||||
|
}).done(function(respuesta){
|
||||||
|
console.log(respuesta);
|
||||||
|
respuesta = JSON.parse(respuesta);
|
||||||
|
if(respuesta.error){
|
||||||
|
|
||||||
|
$('#loginEmail').addClass('is-invalid');
|
||||||
|
$('#loginPassword').addClass('is-invalid');
|
||||||
|
|
||||||
|
$('#errorLogin').text(respuesta.error);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
}); // Fin función ajax
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
+24
-2
@@ -178,17 +178,39 @@ class Usuario {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function login($email, $contrasena) {
|
public static function login($email, $contrasena)
|
||||||
|
{
|
||||||
$usuario = self::buscarPorEmail($email);
|
$usuario = self::buscarPorEmail($email);
|
||||||
|
|
||||||
|
// El usuario no existe
|
||||||
if (!($usuario instanceof Usuario)) {
|
if (!($usuario instanceof Usuario)) {
|
||||||
|
|
||||||
|
// Limpiamos posibles datos de sesión anteriores
|
||||||
|
unset($_SESSION['idUsuario']);
|
||||||
|
unset($_SESSION['email']);
|
||||||
|
unset($_SESSION['nombreUsuario']);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Comprobamos la contraseña
|
||||||
if (password_verify($contrasena, $usuario->getContrasena())) {
|
if (password_verify($contrasena, $usuario->getContrasena())) {
|
||||||
|
|
||||||
|
// Usuario validado correctamente
|
||||||
|
$_SESSION['idUsuario'] = $usuario->getIdUsuario();
|
||||||
|
$_SESSION['email'] = $usuario->getEmail();
|
||||||
|
$_SESSION['nombreUsuario'] = $usuario->getNombreUsuario();
|
||||||
|
|
||||||
|
// Devolvemos el usuario como hasta ahora
|
||||||
return $usuario;
|
return $usuario;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null; // Contraseña incorrecta
|
// Contraseña incorrecta
|
||||||
|
unset($_SESSION['idUsuario']);
|
||||||
|
unset($_SESSION['email']);
|
||||||
|
unset($_SESSION['nombreUsuario']);
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,10 +54,6 @@ switch ($_POST['orden']) {
|
|||||||
|
|
||||||
if ($resultado instanceof Usuario) {
|
if ($resultado instanceof Usuario) {
|
||||||
|
|
||||||
$_SESSION['idUsuario'] = $resultado->getIdUsuario();
|
|
||||||
$_SESSION['email'] = $resultado->getEmail();
|
|
||||||
$_SESSION['nombreUsuario'] = $resultado->getNombreUsuario();
|
|
||||||
|
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
'exito' => 'Login correcto',
|
'exito' => 'Login correcto',
|
||||||
'idUsuario' => $resultado->getIdUsuario(),
|
'idUsuario' => $resultado->getIdUsuario(),
|
||||||
@@ -74,6 +70,7 @@ switch ($_POST['orden']) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case 'cerrarSesion':
|
case 'cerrarSesion':
|
||||||
|
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
session_start();
|
|
||||||
// Usuario logueado (CAMBIAR A NULL PARA CERRAR SESIÓN)
|
|
||||||
$_SESSION['usuario'] = "Alexis";
|
|
||||||
|
|
||||||
$isLoggedIn = isset($_SESSION['usuario']);
|
|
||||||
$username = $isLoggedIn ? $_SESSION['usuario'] : '';
|
|
||||||
|
|
||||||
|
|
||||||
include 'cabecera.php';
|
include 'cabecera.php';
|
||||||
?>
|
?>
|
||||||
|
|||||||
Vendored
+2
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user