1ra Versión
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<?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();
|
||||
?>
|
||||
Reference in New Issue
Block a user