225 lines
4.9 KiB
PHP
225 lines
4.9 KiB
PHP
<?php
|
|
|
|
session_start();
|
|
|
|
require_once '../clases/ClaseUsuario.php';
|
|
|
|
switch ($_POST['orden']) {
|
|
|
|
case 'registrarUsuario':
|
|
|
|
$nombreUsuario = trim($_POST['nombreUsuario'] ?? '');
|
|
$email = trim($_POST['email'] ?? '');
|
|
$contrasena = $_POST['contrasena'] ?? '';
|
|
|
|
if ($nombreUsuario == '' || $email == '' || $contrasena == '') {
|
|
|
|
echo json_encode([
|
|
'error' => 'Todos los campos son obligatorios'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$usuarioExistente = Usuario::buscarPorEmail($email);
|
|
|
|
if ($usuarioExistente instanceof Usuario) {
|
|
|
|
echo json_encode([
|
|
'error' => 'Ya existe una cuenta con ese correo electrónico'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$usuario = new Usuario(
|
|
$nombreUsuario,
|
|
$contrasena,
|
|
$email,
|
|
'img/avatars/defaultProfile.jpeg'
|
|
);
|
|
|
|
$resultado = $usuario->registrar();
|
|
|
|
echo json_encode($resultado);
|
|
|
|
break;
|
|
|
|
|
|
case 'comprobarUsuario':
|
|
|
|
$email = trim($_POST['email'] ?? '');
|
|
$contrasena = $_POST['contrasena'] ?? '';
|
|
|
|
$resultado = Usuario::login($email, $contrasena);
|
|
|
|
if ($resultado instanceof Usuario) {
|
|
|
|
echo json_encode([
|
|
'exito' => 'Login correcto',
|
|
'idUsuario' => $resultado->getIdUsuario(),
|
|
'nombreUsuario' => $resultado->getNombreUsuario()
|
|
]);
|
|
} else {
|
|
|
|
echo json_encode([
|
|
'error' => 'Usuario o contraseña incorrectos'
|
|
]);
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'cerrarSesion':
|
|
|
|
// Limpiamos las variables de sesión
|
|
unset($_SESSION['idUsuario']);
|
|
unset($_SESSION['email']);
|
|
unset($_SESSION['nombreUsuario']);
|
|
|
|
// Destruimos la sesión
|
|
session_destroy();
|
|
|
|
echo json_encode([
|
|
'exito' => 'Sesión cerrada'
|
|
]);
|
|
|
|
break;
|
|
|
|
case 'mostrarEstadisticas':
|
|
|
|
$usuario = Usuario::buscarPorId($_SESSION['idUsuario']);
|
|
|
|
if ($usuario instanceof Usuario) {
|
|
|
|
echo json_encode([
|
|
'victorias' => $usuario->getVictorias(),
|
|
'derrotas' => $usuario->getDerrotas(),
|
|
'aciertos' => $usuario->getAciertos()
|
|
]);
|
|
} else {
|
|
|
|
echo json_encode($usuario);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'cambiarNombre':
|
|
|
|
if (!isset($_SESSION['idUsuario'])) {
|
|
|
|
echo json_encode([
|
|
'error' => 'No hay ningún usuario conectado.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$nuevoNombre = trim($_POST['nombreUsuario'] ?? '');
|
|
|
|
if ($nuevoNombre === '') {
|
|
|
|
echo json_encode([
|
|
'error' => 'El nombre no puede estar vacío.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$usuario = Usuario::buscarPorId($_SESSION['idUsuario']);
|
|
|
|
if (!($usuario instanceof Usuario)) {
|
|
|
|
echo json_encode([
|
|
'error' => 'No se encontró el usuario.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$resultado = $usuario->cambiarNombre($nuevoNombre);
|
|
|
|
if (isset($resultado['error'])) {
|
|
|
|
echo json_encode($resultado);
|
|
} else {
|
|
|
|
// Actualizamos también la sesión
|
|
$_SESSION['nombreUsuario'] = $nuevoNombre;
|
|
|
|
echo json_encode([
|
|
'exito' => 'Nombre actualizado correctamente.',
|
|
'nombreUsuario' => $nuevoNombre
|
|
]);
|
|
}
|
|
|
|
break;
|
|
|
|
case 'cambiarAvatar':
|
|
|
|
if (!isset($_SESSION['idUsuario'])) {
|
|
|
|
echo json_encode([
|
|
'error' => 'No hay ningún usuario conectado.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
if (!isset($_FILES['avatar']) || $_FILES['avatar']['error'] !== UPLOAD_ERR_OK) {
|
|
|
|
echo json_encode([
|
|
'error' => 'No se ha recibido ninguna imagen.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$archivo = $_FILES['avatar'];
|
|
|
|
$tipo = mime_content_type($archivo['tmp_name']);
|
|
|
|
$tiposPermitidos = [
|
|
'image/jpeg',
|
|
'image/png',
|
|
'image/gif',
|
|
'image/webp'
|
|
];
|
|
|
|
if (!in_array($tipo, $tiposPermitidos)) {
|
|
|
|
echo json_encode([
|
|
'error' => 'El formato de imagen no es válido.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$usuario = Usuario::buscarPorId($_SESSION['idUsuario']);
|
|
|
|
if (!($usuario instanceof Usuario)) {
|
|
|
|
echo json_encode([
|
|
'error' => 'No se encontró el usuario.'
|
|
]);
|
|
|
|
break;
|
|
}
|
|
|
|
$resultado = $usuario->cambiarAvatar($archivo);
|
|
|
|
if (isset($resultado['error'])) {
|
|
|
|
echo json_encode($resultado);
|
|
} else {
|
|
|
|
// Actualizamos también la sesión
|
|
$_SESSION['avatar'] = $resultado['avatar'];
|
|
|
|
echo json_encode($resultado);
|
|
}
|
|
|
|
break;
|
|
}
|