Files
MarcosFlorSalcedo 8ec55e40fc 1ra Versión
2026-07-14 18:24:27 -03:00

106 lines
3.6 KiB
PHP

<?php
session_start();
require_once 'conexion.php';
// Respuesta por defecto
header('Content-Type: application/json');
if ($_SERVER["REQUEST_METHOD"] != "POST") {
echo json_encode(['success' => false, 'message' => 'Método no permitido']);
exit();
}
if ($conexion->connect_error) {
echo json_encode(['success' => false, 'message' => 'Error de conexión a la base de datos: ' . $conexion->connect_error]);
exit();
}
// Obtener datos del formulario
$usuario = isset($_POST['usuario']) ? trim($_POST['usuario']) : '';
$contraseña = isset($_POST['contraseña']) ? trim($_POST['contraseña']) : '';
$confirmar_contraseña = isset($_POST['confirmar_contraseña']) ? trim($_POST['confirmar_contraseña']) : '';
$rol = isset($_POST['rol']) ? trim($_POST['rol']) : '';
$nombre = isset($_POST['nombre']) ? trim($_POST['nombre']) : '';
$apellido = isset($_POST['apellido']) ? trim($_POST['apellido']) : '';
$dni = isset($_POST['dni']) ? trim($_POST['dni']) : '';
$correo = isset($_POST['correo']) ? trim($_POST['correo']) : '';
$telefono = isset($_POST['telefono']) ? trim($_POST['telefono']) : '';
// El primer usuario registrado será el administrador supremo del sistema
$contadorQuery = "SELECT COUNT(*) AS total FROM usuarios";
$contadorStmt = $conexion->prepare($contadorQuery);
$contadorStmt->execute();
$contadorResult = $contadorStmt->get_result();
$primerUsuario = $contadorResult->fetch_assoc()['total'] == 0;
$contadorStmt->close();
if ($primerUsuario) {
$rol = 'admin';
}
// Log para debugging
error_log("Datos recibidos - Usuario: $usuario, Rol: $rol, Nombre: $nombre");
// Validar que los campos requeridos estén presentes
if (empty($usuario) || empty($contraseña) || empty($confirmar_contraseña) || empty($rol) || empty($nombre) || empty($apellido) || empty($dni)) {
echo json_encode(['success' => false, 'message' => 'Todos los campos requeridos deben estar completos']);
exit();
}
if (strlen($contraseña) < 6) {
echo json_encode(['success' => false, 'message' => 'La contraseña debe tener al menos 6 carácteres']);
exit();
}
if ($contraseña !== $confirmar_contraseña) {
echo json_encode(['success' => false, 'message' => 'Las contraseñas no coinciden']);
exit();
}
// Validar que el rol sea válido
if (!in_array($rol, ['admin', 'cantina', 'cancha'])) {
echo json_encode(['success' => false, 'message' => 'Rol inválido']);
exit();
}
// Verificar si el usuario ya existe
$query = "SELECT ID_Usuario FROM usuarios WHERE Usuario = ?";
$stmt = $conexion->prepare($query);
if (!$stmt) {
echo json_encode(['success' => false, 'message' => 'Error en la consulta: ' . $conexion->error]);
exit();
}
$stmt->bind_param("s", $usuario);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
echo json_encode(['success' => false, 'message' => 'El usuario ya existe']);
$stmt->close();
exit();
}
$stmt->close();
// Insertar el nuevo usuario
$query = "INSERT INTO usuarios (Usuario, Contraseña, Rol, Nombre, Apellido, DNI, Correo, Telefono)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conexion->prepare($query);
if (!$stmt) {
echo json_encode(['success' => false, 'message' => 'Error en la consulta: ' . $conexion->error]);
exit();
}
$stmt->bind_param("ssssssss", $usuario, $contraseña, $rol, $nombre, $apellido, $dni, $correo, $telefono);
if ($stmt->execute()) {
echo json_encode(['success' => true, 'message' => 'Usuario registrado exitosamente', 'id' => $stmt->insert_id]);
} else {
echo json_encode(['success' => false, 'message' => 'Error al registrar el usuario: ' . $stmt->error]);
}
$stmt->close();
$conexion->close();
?>