This commit is contained in:
Maria Jose 2025-06-16 10:02:37 -06:00
parent 224f6b3bc3
commit c9cbad01c5
11 changed files with 159 additions and 581 deletions

View File

@ -1,173 +0,0 @@
<?php
session_start();
if (!isset($_SESSION['admin'])) {
header("Location: sesion.php");
exit;
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Centro de Certificación LANIA</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Font Awesome para íconos -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
body {
display: flex;
}
.sidebar {
min-width: 250px;
height: 400vh;
background: rgb(19, 61, 213);
color: white;
}
.sidebar a {
color: white;
text-decoration: none;
}
</style>
</head>
<body class="bg-light">
<!-- Sidebar -->
<nav class="sidebar p-3">
<h4 class="text-center mb-4">LANIA</h4>
<ul class="nav flex-column">
<li class="nav-item"><a class="nav-link" href="Estadisticas.php"><i class="fas fa-tachometer-alt"></i> Estadísticas</a></li>
<li class="nav-item"><a class="nav-link" href="FormularioInicial.php"><i class="fas fa-user"></i> Formulario de Ingreso</a></li>
<li class="nav-item"><a class="nav-link" href="FormularioSalida.php"><i class="fas fa-user"></i> Formulario de Salida</a></li>
<div class="logout-btn text-center">
<a href="cierre.php" class="btn btn-danger">
<i class="fas fa-sign-out-alt"></i> Cerrar Sesión
</a>
</div>
</ul>
</nav>
<div class="container py-5">
<div class="text-center mb-4">
<h1 class="display-5">Centro de Certificación LANIA</h1>
<p class="lead">Centro de estadísticas de ingreso de los usuarios</p>
<div class="container">
<h3 class="my-4">Estadísticas de Usuarios</h3>
<canvas id="graficaEmpresas"></canvas>
<canvas id="graficaEstados" class="mt-5"></canvas>
<canvas id="graficaEdades" class="mt-5"></canvas>
<canvas id="graficaSatisfaccion" class="mt-5"></canvas>
<div class="mt-4">
<button class="btn btn-primary" onclick="descargarCSV()">Descargar CSV</button>
<button class="btn btn-danger" onclick="descargarPDF()">Descargar PDF</button>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script>
let datosGlobal = [];
fetch('model/datos_estadisticas.php')
.then(res => res.json())
.then(data => {
datosGlobal = data;
generarGraficas(data);
});
function agruparPor(arr, clave) {
return arr.reduce((acc, obj) => {
const key = obj[clave] || 'No especificado';
acc[key] = (acc[key] || 0) + 1;
return acc;
}, {});
}
function generarGraficas(data) {
const empresas = agruparPor(data, 'empresa');
const estados = agruparPor(data, 'estado_procedencia');
const edades = agruparPor(data, 'edad');
const satisfaccion = agruparPor(data, 'encuesta_satisfaccion');
crearGrafica('graficaEmpresas', 'Empresa de origen', empresas);
crearGrafica('graficaEstados', 'Estado de la República', estados);
crearGrafica('graficaEdades', 'Rango de Edad', edades);
crearGrafica('graficaSatisfaccion', 'Satisfacción', satisfaccion);
}
function crearGrafica(idCanvas, titulo, datos) {
new Chart(document.getElementById(idCanvas), {
type: 'bar',
data: {
labels: Object.keys(datos),
datasets: [{
label: titulo,
data: Object.values(datos),
backgroundColor: 'rgba(19, 61, 213, 0.7)'
}]
},
options: {
responsive: true,
plugins: {
legend: { display: false },
title: {
display: true,
text: titulo
}
}
}
});
}
function descargarCSV() {
const encabezados = ['Empresa', 'Estado', 'Edad', 'Satisfacción'];
const filas = datosGlobal.map(d => [d.empresa, d.estado_republica, d.edad, d.encuesta_satisfaccion]);
let csv = encabezados.join(',') + '\n';
filas.forEach(fila => csv += fila.join(',') + '\n');
const blob = new Blob([csv], { type: 'text/csv' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'estadisticas.csv';
a.click();
}
function descargarPDF() {
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
doc.text("Estadísticas de Usuarios", 10, 10);
let y = 20;
datosGlobal.forEach((d, i) => {
doc.text(`${i+1}. Empresa: ${d.empresa}, Estado: ${d.estado_republica}, Edad: ${d.edad}, Satisfacción: ${d.encuesta_satisfaccion}`, 10, y);
y += 10;
if (y > 270) {
doc.addPage();
y = 20;
}
});
doc.save("estadisticas.pdf");
}
</script>
</body>
</html>

View File

@ -8,183 +8,151 @@ $resultado = $conexion->query($query);
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Centro de Certificación LANIA</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Font Awesome para íconos -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<<<<<<< HEAD
<link href="style/dashboard.css" rel="stylesheet">
=======
<style>
body {
display: flex;
}
.sidebar {
min-width: 250px;
height: 145vh;
background: rgb(19, 61, 213);
color: white;
}
.sidebar a {
color: white;
text-decoration: none;
}
.survey img {
cursor: pointer;
transition: transform .1s;
}
.survey img:checked + label img,
.survey input[type="radio"]:checked + label img {
transform: scale(1.2);
}
</style>
>>>>>>> e909e7d2c6185583ff52105c062fd249ed0450b2
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Centro de Certificación LANIA</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
  <link href="style/dashboard.css" rel="stylesheet">
</head>
<body class="bg-light">
<?php include 'sidebar.php'; ?>
    <div class="main-content">
      <div class="container py-5">
        <div class="text-center mb-4">
          <h1 class="display-5">Centro de Certificación LANIA</h1>
          <p class="lead">Formulario de salida para candidatos de exámenes PEARSON VUE</p>
        </div>
       
        <div class="card shadow p-4">
          <form id="formSalida" method="POST">
            <div class="row g-3">
              <div class="col-md-6">
                <label for="nombre" class="form-label">Nombre del Usuario</label>
                <select class="form-select" id="nombre" name="id_usuario" required>
                  <option value="">Selecciona tu nombre</option>
                  <?php while ($row = $resultado->fetch_assoc()): ?>
                    <option value="<?= $row['id_usuario'] ?>"><?= htmlspecialchars($row['nombre']) ?></option>
                  <?php endwhile; ?>
                </select>
              </div>
             
<div class="main-content">
<div class="container py-5">
<div class="text-center mb-4">
<h1 class="display-5">Centro de Certificación LANIA</h1>
<p class="lead">Formulario de salida para candidatos de exámenes PEARSON VUE</p>
</div>
<div class="card shadow p-4">
<form id="formSalida" method="POST">
<div class="row g-3">
<div class="col-md-6">
<label for="nombre" class="form-label">Nombre del Usuario</label>
<select class="form-select" id="nombre" name="id_usuario" required>
<option value="">Selecciona tu nombre</option>
<?php while ($row = $resultado->fetch_assoc()): ?>
<option value="<?= $row['id_usuario'] ?>"><?= htmlspecialchars($row['nombre']) ?></option>
<?php endwhile; ?>
</select>
</div>
            <div class="mt-4 survey">
              <h5>Encuesta de satisfacción</h5>
<div class="mt-4 survey">
<h5>Encuesta de satisfacción</h5>
<?php
              $preguntas = [
                'atencion_personal'    => '¿Cómo calificaría usted la atención proporcionada por el personal de LANIA antes y durante la realización del examen?', // <-- Remove the ; here
                'equipo_funcionando'   => '¿ El equipo de cómputo proporcionado funcionó correctamente durante todo el examen?', // <-- Remove the ; here
                'ambiente_aula'        => '¿Cómo valoraría el ambiente del aula (nivel de ruido, iluminación, temperatura, mobiliario) durante su examen?', // <-- Remove the ; here
                'calidad_internet'     => '¿Qué tan satisfactoria fue la calidad de la conexión a internet mientras realizaba su examen?', // <-- Remove the ; here
                'instrucciones_claras' => '¿Recibió instrucciones claras sobre el procedimiento del examen y las normas del centro?', // <-- Remove the ; here
                'respuesta_personal'   => 'En caso de surgir dudas o problemas, ¿el personal respondió con rapidez y eficacia?  ', // <-- Remove the ; here
                'recomendacion_lania'  => '¿Qué tan probable es que usted recomiende el Centro de Exámenes LANIA a otras personas?' // <-- Remove the ; here (and it's optional for the last element)
              ];
              foreach ($preguntas as $campo => $texto): ?>
                <div class="mb-3">
                  <label class="form-label"><?= $texto ?></label>
                  <div>
                    <?php for ($i = 1; $i <= 5; $i++): ?>
                      <input
                        type="radio"
                        name="<?= $campo ?>"
                        id="<?= $campo . '_' . $i ?>"
                        value="<?= $i ?>"
                        style="display: none;"
                      >
                      <label for="<?= $campo . '_' . $i ?>">
                        <img src="assets/face_<?= $i ?>.png" alt="<?= $i ?>" width="30">
                      </label>
                    <?php endfor; ?>
                  </div>
                </div>
              <?php endforeach; ?>
            </div>
<?php
$preguntas = [
'atencion_personal' => '¿Cómo calificaría usted la atención proporcionada por el personal de LANIA antes y durante la realización del examen?',
'equipo_funcionando' => '¿ El equipo de cómputo proporcionado funcionó correctamente durante todo el examen?',
'ambiente_aula' => '¿Cómo valoraría el ambiente del aula (nivel de ruido, iluminación, temperatura, mobiliario) durante su examen?',
'calidad_internet' => '¿Qué tan satisfactoria fue la calidad de la conexión a internet mientras realizaba su examen?',
'instrucciones_claras' => '¿Recibió instrucciones claras sobre el procedimiento del examen y las normas del centro?',
'respuesta_personal' => 'En caso de surgir dudas o problemas, ¿el personal respondió con rapidez y eficacia? ',
'recomendacion_lania' => '¿Qué tan probable es que usted recomiende el Centro de Exámenes LANIA a otras personas?'
];
foreach ($preguntas as $campo => $texto): ?>
<div class="mb-3">
<label class="form-label"><?= $texto ?></label>
<div>
<?php for ($i = 1; $i <= 5; $i++): ?>
<input
type="radio"
name="<?= $campo ?>"
id="<?= $campo . '_' . $i ?>"
value="<?= $i ?>"
style="display: none;"
>
<label for="<?= $campo . '_' . $i ?>">
<img src="assets/face_<?= $i ?>.png" alt="<?= $i ?>" width="30">
</label>
<?php endfor; ?>
</div>
</div>
<?php endforeach; ?>
</div>
                        <input type="hidden" name="consentimiento" value="no">
            <div class="form-check mb-4">
              <input
                class="form-check-input"
                type="checkbox"
                id="consentimiento"
                name="consentimiento"
                value="si"
                checked
              >
              <label class="form-check-label" for="consentimiento">
                Doy mi consentimiento para recibir publicidad
              </label>
            </div>
            <input type="hidden" id="hora_salida_local" name="hora_salida">
<!-- Consentimiento -->
<input type="hidden" name="consentimiento" value="no">
<div class="form-check mb-4">
<input
class="form-check-input"
type="checkbox"
id="consentimiento"
name="consentimiento"
value="si"
checked
>
<label class="form-check-label" for="consentimiento">
Doy mi consentimiento para recibir publicidad
</label>
</div>
<input type="hidden" id="hora_salida_local" name="hora_salida">
                        <div class="mt-4 text-end">
              <button type="submit" class="btn btn-primary">Enviar registro</button>
            </div>
          </form>
        </div>
      </div>
<!-- Botón enviar -->
<div class="mt-4 text-end">
<button type="submit" class="btn btn-primary">Enviar registro</button>
</div>
</form>
</div>
</div>
            <div class="modal fade" id="modalGracias" tabindex="-1" aria-labelledby="modalGraciasLabel" aria-hidden="true">
        <div class="modal-dialog modal-dialog-centered">
          <div class="modal-content">
            <div class="modal-header bg-success text-white">
              <h5 class="modal-title" id="modalGraciasLabel">¡Salida registrada!</h5>
              <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button>
            </div>
            <div class="modal-body text-center">
              Gracias por tu asistencia.
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-success" data-bs-dismiss="modal">Aceptar</button>
            </div>
          </div>
        </div>
      </div>
    </div>
<!-- Modal de agradecimiento -->
<div class="modal fade" id="modalGracias" tabindex="-1" aria-labelledby="modalGraciasLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-success text-white">
<h5 class="modal-title" id="modalGraciasLabel">¡Salida registrada!</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button>
</div>
<div class="modal-body text-center">
Gracias por tu asistencia.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" data-bs-dismiss="modal">Aceptar</button>
</div>
</div>
</div>
</div>
</div>
  <script>
    document.getElementById("formSalida").addEventListener("submit", function(e) {
      e.preventDefault();
<script>
document.getElementById("formSalida").addEventListener("submit", function(e) {
e.preventDefault();
      const ahora = new Date();
      const hora = ahora.toTimeString().slice(0,8); // "HH:MM:SS"
      document.getElementById("hora_salida_local").value = hora;
const ahora = new Date();
const hora = ahora.toTimeString().slice(0,8); // "HH:MM:SS"
document.getElementById("hora_salida_local").value = hora;
      const form = e.target;
      const formData = new FormData(form);
const form = e.target;
const formData = new FormData(form);
      fetch("model/logout.php", {
        method: "POST",
        body: formData
      })
      .then(response => response.text())
      .then(data => {
        const modalGracias = new bootstrap.Modal(document.getElementById('modalGracias'));
        modalGracias.show();
        form.reset();
      })
      .catch(error => {
        console.error("Error al enviar:", error);
        alert("Ocurrió un error al registrar la salida.");
      });
    });
fetch("model/logout.php", {
method: "POST",
body: formData
})
.then(response => response.text())
.then(data => {
const modalGracias = new bootstrap.Modal(document.getElementById('modalGracias'));
modalGracias.show();
form.reset();
})
.catch(error => {
console.error("Error al enviar:", error);
alert("Ocurrió un error al registrar la salida.");
});
});
    document.addEventListener('DOMContentLoaded', function() {
        document.querySelectorAll('.sidebar-menu li').forEach(item => {
            item.classList.remove('active');
        });
        const menuSalida = document.getElementById('menu-salida');
        if (menuSalida) {
            menuSalida.classList.add('active');
        }
    });
  </script>
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('.sidebar-menu li').forEach(item => {
item.classList.remove('active');
});
const menuSalida = document.getElementById('menu-salida');
if (menuSalida) {
menuSalida.classList.add('active');
}
});
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@ -1,5 +0,0 @@
<?php
session_start();
session_destroy();
header("Location: sesion.php");
exit;

View File

@ -21,16 +21,40 @@
position: relative;
height: 300px; /* Ajusta esta altura según sea necesario para tus gráficos */
width: 100%;
/* Aseguramos que el contenido no desborde si el gráfico se vuelve muy pequeño */
overflow: hidden;
}
/* Para que las tarjetas tengan una altura consistente si sus contenidos son diferentes */
.card {
height: 100%;
}
/* No es necesario un height fijo si el card-body es flex-column */
.card-body {
display: flex;
align-items: center;
justify-content: center;
height: calc(100% - 56px); /* Altura del card-header es aproximadamente 56px */
flex-direction: column; /* Asegura que los elementos se apilen verticalmente */
align-items: center; /* Centra los elementos horizontalmente */
padding: 1.5rem; /* Añade un padding general para evitar que el contenido toque los bordes */
}
/* Añadir un ancho máximo a los botones para que no se desborden */
.card-body .btn {
max-width: 100%; /* Asegura que los botones no excedan el ancho de su contenedor */
white-space: normal;
word-wrap: break-word;
}
/* Medias queries para ajustar el tamaño de fuente si es necesario en pantallas muy pequeñas */
@media (max-width: 576px) { /* Para pantallas extra pequeñas (celulares) */
.card-title {
font-size: 1rem; /* Reduce el tamaño del título */
}
.card-body .btn {
font-size: 0.8rem; /* Reduce el tamaño de la fuente de los botones */
padding: 0.5rem 0.8rem; /* Ajusta el padding de los botones */
}
.chart-container {
height: 250px; /* Puedes reducir la altura de los gráficos en móviles */
}
}
</style>
@ -115,7 +139,8 @@
<div class="card-header">
<h5 class="card-title">Usuarios por Rango de Fechas</h5>
</div>
<div class="card-body d-flex flex-column align-items-center"> <div class="mb-3 d-flex flex-column align-items-center">
<div class="card-body d-flex flex-column align-items-center">
<div class="mb-3 d-flex flex-column align-items-center">
<button class="btn btn-outline-secondary mb-2 date-filter-btn" data-period="week" onclick="setQuickDateFilter('week', this)">Última Semana</button>
<button class="btn btn-outline-secondary mb-2 date-filter-btn" data-period="last_month_full" onclick="setQuickDateFilter('last_month_full', this)">Último Mes</button>
<button class="btn btn-outline-secondary date-filter-btn" data-period="last_year_full" onclick="setQuickDateFilter('last_year_full', this)">Último Año</button>

View File

@ -2,11 +2,7 @@
$host = "localhost";
$user = "root";
<<<<<<< HEAD
$pass = "Arbolito123.";
=======
$pass = "Starfox19.";
>>>>>>> e909e7d2c6185583ff52105c062fd249ed0450b2
$db = "lania";
$conexion = new mysqli($host, $user, $pass, $db);

View File

@ -1,19 +0,0 @@
<?php
require_once '../database/database.php';
$datos = [];
$sql = "SELECT empresa, estado_procedencia, edad FROM entrada";
if ($result = $conexion->query($sql)) {
while ($row = $result->fetch_assoc()) {
$datos[] = $row;
}
} else {
http_response_code(500);
echo json_encode(["error" => "Error en la consulta SQL"]);
exit;
}
header('Content-Type: application/json');
echo json_encode($datos);
?>

View File

@ -1,29 +0,0 @@
<?php
session_start();
$conn = require_once __DIR__ . '/../database/database.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nombre = $_POST['nombre'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT * FROM admin WHERE nombre = ?");
$stmt->bind_param("s", $nombre);
$stmt->execute();
$result = $stmt->get_result();
if ($admin = $result->fetch_assoc()) {
if (password_verify($password, $admin['password'])) {
$_SESSION['admin'] = $admin['nombre'];
header("Location: Estadisticas.php");
exit;
} else {
$error = "⚠️ Contraseña incorrecta.";
}
} else {
$error = "⚠️ Usuario no encontrado.";
}
$stmt->close();
}
?>

View File

@ -1,35 +0,0 @@
<?php
require '../database/database.php';
date_default_timezone_set('America/Mexico_City');
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nombre = $_POST['nombre'] ?? '';
$correo = $_POST['correo'] ?? '';
$telefono = $_POST['telefono'] ?? '';
$genero = $_POST['genero'] ?? '';
$edad = $_POST['edad'] ?? '';
$estado_procedencia = $_POST['estado_procedencia'] ?? '';
$identificacion = $_POST['identificacion'] ?? '';
$empresa = $_POST['empresa'] ?? '';
$examen = $_POST['examen'] ?? '';
$certificacion = $_POST['certificacion'] ?? '';
$hora_entrada = $_POST['h_entrada'] ?: date("H:i:s"); // si no se proporciona, toma hora actual
$fecha = $_POST['fecha'] ?: date("Y-m-d"); // si no se proporciona, toma fecha actual
$sql = "INSERT INTO entrada (nombre, correo, telefono, genero, edad, estado_procedencia, identificacion, empresa, examen, certificacion, h_entrada, fecha)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conexion->prepare($sql);
$stmt->bind_param("ssssssssssss", $nombre, $correo, $telefono, $genero, $edad, $estado_procedencia, $identificacion, $empresa, $examen, $certificacion, $hora_entrada, $fecha);
if ($stmt->execute()) {
echo "Entrada guardada correctamente.";
} else {
echo "Error al guardar: " . $stmt->error;
}
$stmt->close();
$conexion->close();
}
?>

View File

@ -1,55 +0,0 @@
<?php
require_once '../database/database.php';
// Sanitizar y obtener valores
$id_usuario = $_POST['id_usuario'];
$hora_salida = $_POST['hora_salida'];
$consentimiento = isset($_POST['consentimiento']) ? $_POST['consentimiento'] : 'no';
// 1. Insertar la salida
$sqlSalida = "INSERT INTO salida (id_usuario, hora_salida, consentimiento) VALUES (?, ?, ?)";
$stmtSalida = $conexion->prepare($sqlSalida);
$stmtSalida->bind_param("iss", $id_usuario, $hora_salida, $consentimiento);
$stmtSalida->execute();
$id_salida = $stmtSalida->insert_id; // Obtener el ID generado
// 2. Insertar la encuesta (si se llenó)
$campos_encuesta = [
'atencion_personal',
'equipo_funcionando',
'ambiente_aula',
'calidad_internet',
'instrucciones_claras',
'respuesta_personal',
'recomendacion_lania'
];
$valores_encuesta = [];
foreach ($campos_encuesta as $campo) {
$valores_encuesta[$campo] = isset($_POST[$campo]) ? intval($_POST[$campo]) : null;
}
// Solo guarda si hay al menos una respuesta
if (array_filter($valores_encuesta)) {
$sqlEncuesta = "INSERT INTO encuesta_satisfaccion (
id_salida, atencion_personal, equipo_funcionando, ambiente_aula, calidad_internet,
instrucciones_claras, respuesta_personal, recomendacion_lania
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
$stmtEncuesta = $conexion->prepare($sqlEncuesta);
$stmtEncuesta->bind_param(
"iiiiiiii",
$id_salida,
$valores_encuesta['atencion_personal'],
$valores_encuesta['equipo_funcionando'],
$valores_encuesta['ambiente_aula'],
$valores_encuesta['calidad_internet'],
$valores_encuesta['instrucciones_claras'],
$valores_encuesta['respuesta_personal'],
$valores_encuesta['recomendacion_lania']
);
$stmtEncuesta->execute();
}
echo "Salida y encuesta registradas correctamente.";

View File

@ -1,20 +0,0 @@
<?php
$conn = require_once __DIR__ . '/../database/database.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nombre = $_POST['nombre'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO admin (nombre, password) VALUES (?, ?)");
$stmt->bind_param("ss", $nombre, $password);
if ($stmt->execute()) {
$success = "✅ Administrador registrado con éxito.";
} else {
$error = "❌ Error al registrar: " . $stmt->error;
}
$stmt->close();
}
?>

View File

@ -1,75 +0,0 @@
<?php require_once 'model/inicio.php'; ?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Inicio de Sesión</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Font Awesome para íconos -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- Custom CSS opcional (puedes agregar tu estilo o el de SB Admin 2) -->
<style>
body {
display: flex;
}
.sidebar {
min-width: 250px;
height: 400vh;
background: rgb(19, 61, 213);
color: white;
}
.sidebar a {
color: white;
text-decoration: none;
}
</style>
</head>
<body class="bg-light">
<nav class="sidebar p-3">
<h4 class="text-center mb-4">LANIA</h4>
<ul class="nav flex-column">
<li class="nav-item"><a class="nav-link" href="Estadisticas.php"><i class="fas fa-tachometer-alt"></i> Estadísticas</a></li>
<li class="nav-item"><a class="nav-link" href="FormularioInicial.php"><i class="fas fa-user"></i> Formulario de Ingreso</a></li>
<li class="nav-item"><a class="nav-link" href="FormularioSalida.php"><i class="fas fa-user"></i> Formulario de Salida</a></li>
</ul>
</nav>
<div class="container py-5">
<div class="text-center mb-4">
<h1 class="display-5">Sesion Requerida</h1>
</div>
<div class="card shadow p-4">
<form method="post">
<label for="nombre" class="form-label">Nombre:</label>
<input type="text" class="form-control" id="nombre" name="nombre" required><br>
<label for="password" class="form-label">Contraseña:</label>
<input type="password" class="form-control" id="password" name="password" required><br>
<div class="mt-4 text-center">
<button type="submit" class="btn btn-primary">Iniciar sesión</button>
<a href="registro.php"><button type="button" class="btn btn-primary">Ir a Registro</button></a>
</div>
</form>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
</body>
</html>
<?php if (isset($error)) echo "<p>$error</p>"; ?>