EJERCICIO 23

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>EJERCICIO 23</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background: #f4f6f9;
            margin: 0;
            padding: 0;
        }
        header {
            background: green;
            color: white;
            padding: 15px;
            text-align: center;
        }
        h1 {
            margin: 0;
        }
        main {
            max-width: 1400px;
            margin: 30px auto;
            padding: 20px;
            background: white;
            border-radius: 10px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        }
        ul {
            list-style: none;
            padding: 0;
        }
        li {
            background: #ecf0f1;
            margin: 10px 0;
            padding: 15px;
            border-left: 5px solid green;
            border-right: 5px solid green;
            transition: 0.3s;
        border-radius:8px;
        }
        li:hover {
            background: #d6eaf8;
            border-left: 5px solid purple;
            border-right: 5px solid purple;
        }

        footer{
            margin: auto;
            background-color: green;
            text-align: center;
            height: 150px;
        color: white;
        }
    main{
    justify-content:center;
    }
        #telefono, #nombre {
            background-color: lightgoldenrodyellow;
        }
        form *{
            margin-top: 10px; 
        }
        label{
            display: inline-block;
            width: 80px;
            margin-left: 20px;
        }
        .aviso{font-size: 0.75em;}
        input[name="enviar"], button{
            padding: 5px 15px;
            margin: 10px 50px;
            border-radius: 20px;
            background-color: rgb(73, 136, 187);
            color: white;
        }
        .error{color: red;}

    </style>
</head>
<body>
    <header>
        <h1><b>EJERCICIO 23</b></h1>
    </header>
    <main>   
        <section>
            <?php
            /**
             * @author: Enrique Nieto Lorenzo
             * @since: 06/11/2025
             * 23.Construir un formulario para recoger un cuestionario realizado a una persona y mostrar
             * en la misma página las preguntas y las respuestas recogidas; en el caso de que alguna
             * respuesta esté vacía o errónea volverá a salir el formulario con el mensaje correspondiente.
             */

            // Importación de la librería de validación necesaria
            require_once "../core/231018libreriaValidacion.php";
            
            //Variable interruptor que nos indica que la entrada es correcta
            $entradaOK = true;
            
            //Array asociativo preparado para recoger los mensajes de error
            $aErrores = [
                'nombre' => '', 
                'email' => '', 
                'telefono'=> ''
            ];
            
            //Array asociativo preparado para recoger las respuestas correctas (si $entradaOK)
            $aRespuestas=[ 
                'nombre' => '', 
                'email' => '', 
                'telefono'=> ''
            ]; 

            //Para cada campo del formulario: Validar entrada de los datos
            if (isset($_REQUEST["enviar"])) {//Código que se ejecuta cuando se envía el formulario

                // Validamos los datos del formulario
                $aErrores['nombre']= validacionFormularios::comprobarAlfabetico($_REQUEST['nombre'],100,0,1,);
                $aErrores['email']= validacionFormularios::validarEmail($_REQUEST['email']);
                $aErrores['telefono'] = validacionFormularios::validarTelefono($_REQUEST['telefono']);

                if(!empty($_REQUEST['telefono'])){ // Comprobar si el telefono está vacío
                    foreach($aErrores as $campo => $valor){
                        if(!empty($valor)){ // Comprobar si el valor es válido
                            $entradaOK = false;
                        } 
                    }
                }else{ //Construir mensajes de error
                    $aErrores['telefono']='Introduce un teléfono';
                    $entradaOK = false;
                }

            } else {//Código que se ejecuta antes de rellenar el formulario
                $entradaOK = false;
            }
            //Tratamiento del formulario
            if($entradaOK){ //Cargar la variable $aRespuestas y tratamiento de datos OK

                // Recuperar los valores del formulario
                $aRespuestas['nombre'] = $_REQUEST['nombre'];
                $aRespuestas['email'] = $_REQUEST['email'];
                $aRespuestas['telefono'] = $_REQUEST['telefono'];

                echo "<h2>Resultados:</h2>";
                foreach ($aRespuestas as $campo => $valor) {
                    echo "<p>$campo: <b>$valor</b></p>";
                }

                // Botón para volver a recargar el formulario inicial
                echo '<a href="' . $_SERVER['PHP_SELF'] . '"><button>Volver</button></a>';

            } else { //Mostrar el formulario hasta que lo rellenemos correctamente
                //Mostrar los datos tecleados correctamente en intentos anteriores
                //Mostrar mensajes de error (si los hay y el formulario no se muestra por primera vez)
                ?>
                    <h2>Datos personales</h2>
                    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> 
                        <label for="nombre">Nombre:</label>
                        <input type="text" id="nombre" name="nombre"><span class="error">*<?php echo $aErrores['nombre'] ?></span>
                        <br>
                        <label for="email">Email:</label>
                        <input type="text" name="email">
                        <br>
                        <label for="telefono">Telefono:</label> 
                        <input type="text" id="telefono" name="telefono"><span class="error">*<?php echo $aErrores['telefono'] ?></span>
                        <br>
                        <input type="submit" value="Enviar" name="enviar">
                        <p class="aviso">*Campos obligatorios</p>
                    </form>

                <?php

            }
           ?>
        </section>
    </main>

    <footer>
        <caption>
            <a href="/ENLDWESProyectoTema3/indexProyectoTema3.php">Enrique Nieto Lorenzo</a> | 09/10/2025
        </caption>
    </footer>
</body>
</html>