cierre de sesion
This commit is contained in:
+134
-108
@@ -18,7 +18,7 @@ $username = $isLoggedIn ? $_SESSION['nombreUsuario'] : '';
|
|||||||
<script src="js/jquery-4.0.0.min.js"></script>
|
<script src="js/jquery-4.0.0.min.js"></script>
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-lg navbar-kahoot py-3 mb-4">
|
<nav class="navbar navbar-expand-lg navbar-kahoot py-3 mb-4">
|
||||||
@@ -32,16 +32,16 @@ $username = $isLoggedIn ? $_SESSION['nombreUsuario'] : '';
|
|||||||
|
|
||||||
<div class="collapse navbar-collapse" id="navbarContent">
|
<div class="collapse navbar-collapse" id="navbarContent">
|
||||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0"></ul>
|
<ul class="navbar-nav me-auto mb-2 mb-lg-0"></ul>
|
||||||
|
|
||||||
<div class="d-flex align-items-center gap-3">
|
<div class="d-flex align-items-center gap-3">
|
||||||
<?php if ($isLoggedIn): ?>
|
<?php if ($isLoggedIn): ?>
|
||||||
<!-- Menú desplegable cuando la sesión está iniciada -->
|
<!-- Menú desplegable cuando la sesión está iniciada -->
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<button class="btn user-dropdown-btn dropdown-toggle d-flex align-items-center gap-2"
|
<button class="btn user-dropdown-btn dropdown-toggle d-flex align-items-center gap-2"
|
||||||
type="button"
|
type="button"
|
||||||
id="userDropdown"
|
id="userDropdown"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="fa-solid fa-circle-user fa-lg text-warning"></i>
|
<i class="fa-solid fa-circle-user fa-lg text-warning"></i>
|
||||||
<span><?= htmlspecialchars($username) ?></span>
|
<span><?= htmlspecialchars($username) ?></span>
|
||||||
</button>
|
</button>
|
||||||
@@ -51,11 +51,14 @@ $username = $isLoggedIn ? $_SESSION['nombreUsuario'] : '';
|
|||||||
<i class="fa-solid fa-user text-primary"></i> Perfil
|
<i class="fa-solid fa-user text-primary"></i> Perfil
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li><hr class="dropdown-divider"></li>
|
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item logout-item d-flex align-items-center gap-2" href="logout.php">
|
<hr class="dropdown-divider">
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item logout-item d-flex align-items-center gap-2" href="#" id="botonCerrarSesion">
|
||||||
<i class="fa-solid fa-right-from-bracket"></i> Cerrar Sesión
|
<i class="fa-solid fa-right-from-bracket"></i> Cerrar Sesión
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -150,130 +153,153 @@ $username = $isLoggedIn ? $_SESSION['nombreUsuario'] : '';
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<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();
|
||||||
|
|
||||||
// Registro
|
// Limpiamos errores anteriores
|
||||||
$('#botonAceptarRegistro').click(function(event){
|
$('#regNombre').removeClass('is-invalid');
|
||||||
event.preventDefault();
|
$('#regEmail').removeClass('is-invalid');
|
||||||
console.log('hola');
|
$('#regPassword').removeClass('is-invalid');
|
||||||
let nombreUsuario = $('#regNombre').val().trim();
|
$('#regPasswordConfirm').removeClass('is-invalid');
|
||||||
let email = $('#regEmail').val().trim();
|
$('#errorRegistro').text('');
|
||||||
let contrasena = $('#regPassword').val();
|
|
||||||
let contrasenaConfirmacion = $('#regPasswordConfirm').val();
|
|
||||||
|
|
||||||
// Limpiamos errores anteriores
|
// Comprobamos que las contraseñas coincidan
|
||||||
$('#regNombre').removeClass('is-invalid');
|
if (contrasena !== contrasenaConfirmacion) {
|
||||||
$('#regEmail').removeClass('is-invalid');
|
|
||||||
$('#regPassword').removeClass('is-invalid');
|
|
||||||
$('#regPasswordConfirm').removeClass('is-invalid');
|
|
||||||
$('#errorRegistro').text('');
|
|
||||||
|
|
||||||
// Comprobamos que las contraseñas coincidan
|
$('#regPassword').addClass('is-invalid');
|
||||||
if(contrasena !== contrasenaConfirmacion){
|
$('#regPasswordConfirm').addClass('is-invalid');
|
||||||
|
|
||||||
$('#regPassword').addClass('is-invalid');
|
$('#errorRegistro').text('Las contraseñas no coinciden.');
|
||||||
$('#regPasswordConfirm').addClass('is-invalid');
|
|
||||||
|
|
||||||
$('#errorRegistro').text('Las contraseñas no coinciden.');
|
return;
|
||||||
|
|
||||||
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
|
$.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);
|
||||||
|
|
||||||
// Login
|
// Marcamos los campos si hay error
|
||||||
$('#botonAceptarLogin').click(function(event){
|
$('#regNombre').addClass('is-invalid');
|
||||||
event.preventDefault();
|
$('#regEmail').addClass('is-invalid');
|
||||||
|
|
||||||
let email = $('#loginEmail').val().trim();
|
} else {
|
||||||
let contrasena = $('#loginPassword').val();
|
|
||||||
|
|
||||||
// Limpiamos errores anteriores
|
// Registro correcto
|
||||||
$('#loginEmail').removeClass('is-invalid');
|
$('#errorRegistro')
|
||||||
$('#loginPassword').removeClass('is-invalid');
|
.removeClass('text-danger')
|
||||||
$('#errorLogin').text('');
|
.addClass('text-success')
|
||||||
|
.text(respuesta.exito);
|
||||||
|
|
||||||
// Comprobación básica
|
// Limpiamos formulario
|
||||||
if(email === '' || contrasena === ''){
|
$('#formRegistro')[0].reset();
|
||||||
|
|
||||||
$('#errorLogin').text('Todos los campos son obligatorios.');
|
// Cerramos modal después de un segundo
|
||||||
|
setTimeout(function() {
|
||||||
|
location.reload();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
if(email === ''){
|
}); // Fin función ajax
|
||||||
$('#loginEmail').addClass('is-invalid');
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(contrasena === ''){
|
$.ajax({
|
||||||
$('#loginPassword').addClass('is-invalid');
|
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) {
|
||||||
|
|
||||||
return;
|
$('#loginEmail').addClass('is-invalid');
|
||||||
}
|
$('#loginPassword').addClass('is-invalid');
|
||||||
|
|
||||||
$.ajax({
|
$('#errorLogin').text(respuesta.error);
|
||||||
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');
|
} else {
|
||||||
$('#loginPassword').addClass('is-invalid');
|
|
||||||
|
|
||||||
$('#errorLogin').text(respuesta.error);
|
location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}); // Fin función ajax
|
||||||
|
|
||||||
location.reload();
|
});
|
||||||
}
|
|
||||||
|
|
||||||
}); // Fin función ajax
|
// Cerrar sesión
|
||||||
|
$('#botonCerrarSesion').click(function(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
});
|
$.ajax({
|
||||||
|
method: "POST",
|
||||||
|
url: "controladores/controladorUsuario.php",
|
||||||
|
data: {
|
||||||
|
'orden': 'cerrarSesion'
|
||||||
|
}
|
||||||
|
}).done(function(respuesta) {
|
||||||
|
//console.log(respuesta);
|
||||||
|
respuesta = JSON.parse(respuesta);
|
||||||
|
if (respuesta.error) {
|
||||||
|
console.log(respuesta.error);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Sesión cerrada correctamente
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}); // Fin función ajax
|
||||||
|
|
||||||
|
}); // Fin función click
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -59,7 +59,6 @@ switch ($_POST['orden']) {
|
|||||||
'idUsuario' => $resultado->getIdUsuario(),
|
'idUsuario' => $resultado->getIdUsuario(),
|
||||||
'nombreUsuario' => $resultado->getNombreUsuario()
|
'nombreUsuario' => $resultado->getNombreUsuario()
|
||||||
]);
|
]);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
@@ -73,6 +72,12 @@ switch ($_POST['orden']) {
|
|||||||
|
|
||||||
case 'cerrarSesion':
|
case 'cerrarSesion':
|
||||||
|
|
||||||
|
// Limpiamos las variables de sesión
|
||||||
|
unset($_SESSION['idUsuario']);
|
||||||
|
unset($_SESSION['email']);
|
||||||
|
unset($_SESSION['nombreUsuario']);
|
||||||
|
|
||||||
|
// Destruimos la sesión
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
@@ -80,5 +85,4 @@ switch ($_POST['orden']) {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user