<!DOCTYPE html>
<html lang="es">
    <head>
        <title>Ej 24</title>
        <link rel="stylesheet" href="../webroot/css/ejercicio24.css">
    </head>
    <body>
        <header>
            <h1>Formulario validado 2</h1>
        </header>
            <?php
                
/**
                 * @author Alex Asensio Sanchez
                 * @version Fecha de última modificación 16/10/2024
                 */
                 
                //importamos la libreria de vaidaciones
                
require_once('../core/231018libreriaValidacion.php');
                
$entradaOK=true//Booleano que confirma que todo va bien
                
$oFechaActual = new DateTime("now"); //Variable que recoge la fecha actual
                
                
$aErrores=[  //Array de errores
                    
'nombre' => '',
                    
'edad'=>'',
                    
'fechaNac'=>'',
                    
'email'=>'',
                    
'real'=>'',
                    
'telefono'=>'',
                    
'url'=>'',                    
                ]; 
                
$aRespuestas=[  //Array de respuestas
                    
'nombre'=>" ",
                    
'edad'=>" ",
                    
'fechaNac'=>" ",
                    
'email'=>" ",
                    
'real'=>0.0,
                    
'telefono'=>" ",
                    
'url'=>" ",
                    
'fechaActual'=>$oFechaActual,
                ]; 
                 
                
//Cuando se envien los datos, se entrara aqui para validarlos
                
if(isset($_REQUEST['enviar'])){
                        
                        
$aErrores=[ 
                            
'nombre' => validacionFormularios::comprobarAlfabetico($_REQUEST['nombre'], 100011),
                            
'edad' => validacionFormularios::comprobarEntero($_REQUEST['edad']),
                            
'fechaNac'=> validacionFormularios::validarFecha($_REQUEST['fechaNac'], '01/01/2200'),
                            
'email'=> validacionFormularios::validarEmail($_REQUEST['email']),
                            
'real'=> validacionFormularios::comprobarFloat($_REQUEST['real']),
                            
'telefono'=> validacionFormularios::validarTelefono($_REQUEST['telefono']),
                            
'url'=> validacionFormularios::validarURL($_REQUEST['url']),                            
                        ];   
                    
                     
//Recorremos el array de errores 
                    
foreach ($aErrores as $clave => $valor) {
                        if (
$valor == !null) {
                            
$entradaOK false;
                            
//Limpiamos el campo si hay un error
                            
$_REQUEST[$clave] = ''
                        }
                    }
                }
                else{
                    
$entradaOK=false;
                }
                
//Se entrara aqui si los datos han sido introducidos y validados
                
if($entradaOK){
                    
$aRespuestas['nombre']=$_REQUEST['nombre'];
                    
$aRespuestas['edad']=$_REQUEST['edad'];
                    
$aRespuestas['fechaNac']=new DateTime($_REQUEST['fechaNac']);
                    
$aRespuestas['email']=$_REQUEST['email'];
                    
$aRespuestas['real']=$_REQUEST['real'];
                    
$aRespuestas['telefono']=$_REQUEST['telefono'];
                    
$aRespuestas['url']=$_REQUEST['url'];                    
                    
                
?>
                    <div id="respuesta">                        
                <?php
                        
echo "<h1>Respuestas:</h1>";
                        foreach (
$aRespuestas as $key => $value) {
                            
//echo "$key : $value <br>";
                            
echo ($value instanceof DateTime) ? "$key : " $value->format('d/m/Y') . "<br>" "$key : $value <br>";  
                        }
                
?>
                    </div>
                <?php
                
}
                else{
                
?>
                        
                <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" novalidate>
                        <div id="divNombre">
                            <label for="nombre">Nombre:</label><br>
                            <input type="text" id="nombre" name="nombre" placeholder="Ej: Alex" style="background-color: yellow" value="<?php echo (isset($_REQUEST['nombre']) ? $_REQUEST['nombre'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->
                            <?php if (!empty($aErrores["nombre"])) { ?>
                                    <!--Si hay algun error almacenado en el array, el mensaje del mismo se mostrara, esto para cada caso-->
                                    <p style="color: red"><?php echo $aErrores["nombre"]; ?></p>
                            <?php ?>
                        </div>
                        <div id="divEdad">
                            <label for="edad">Edad:</label><br>
                            <input type="text" id="edad" name="edad" placeholder="Ej: 1" value="<?php echo (isset($_REQUEST['edad']) ? $_REQUEST['edad'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->

                            <?php if (!empty($aErrores["edad"])) { ?>
                                    <p id="errorEdad" style="color:red"><?php echo $aErrores["edad"]; ?></p>
                            <?php ?>
                        </div>
                        <div id="divFechaNacimiento">
                            <label for="fechaNac">Fecha de nacimiento:</label><br>
                            <input type="date" id="fechaNac" name="fechaNac" value="<?php echo (isset($_REQUEST['fechaNac']) ? $_REQUEST['fechaNac'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->

                            <?php if (!empty($aErrores['fechaNac'])) { ?>
                                    <p id="errorFecha" style="color:red"><?php echo $aErrores['fechaNac']; ?></p>
                            <?php ?>
                        </div>
                        <div id="divEmail">
                            <label for="email">Email personal:</label><br>
                            <input type="mail" id="email" name="email" placeholder="Ej: correo@gmail.es" value="<?php echo (isset($_REQUEST['email']) ? $_REQUEST['email'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->

                            <?php if (!empty($aErrores['email'])) { ?>
                                    <p id="errorEmail" style="color:red"><?php echo $aErrores['email']; ?></p>
                            <?php ?>
                        </div>
                        <div id="divReal">
                            <label for="real">Mete un float:</label><br>
                            <input type="text" id="real" name="real" placeholder="Ej: 1.2" value="<?php echo (isset($_REQUEST['real']) ? $_REQUEST['real'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->

                            <?php if (!empty($aErrores['real'])) { ?>
                                    <p id="errorReal" style="color:red"><?php echo $aErrores['real']; ?></p>
                            <?php ?>
                        </div>
                        <div id="divTelefono">
                            <label for="telefono">Telefono:</label><br>
                            <input type="tel" id="telefono" name="telefono" placeholder="000000000" value="<?php echo (isset($_REQUEST['telefono']) ? $_REQUEST['telefono'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->

                            <?php if (!empty($aErrores['telefono'])) { ?>
                                    <p id="errorTelefono" style="color:red"><?php echo $aErrores['telefono']; ?></p>
                            <?php ?>
                        </div>
                        <div id="divUrl">
                            <label for="url">Introduce una url:</label><br>
                            <input type="url" id="url" name="url" placeholder="Ej: http://......" value="<?php echo (isset($_REQUEST['url']) ? $_REQUEST['url'] : ''); ?>"/><!-- Si el array de errores esta vacio y la variable "nombre" tiene un valor ya validado, este aparecera en el campo de haber un error en otro de los campos -->

                            <?php if (!empty($aErrores['url'])) { ?>
                                    <p id="errorUrl" style="color:red"><?php echo $aErrores['url']; ?></p>
                            <?php ?>
                        </div>
                        <div id="divFechaActual">
                            <label for="fechaActual">Fecha actual:</label><br>
                            <input type="text" id="fechaActual" name="fechaActual"  style="background-color: lightgray"  value="<?php echo date_format($oFechaActual"d-m-Y")?>" disabled>
                        </div>
                        <div id="enviar">
                            <input id="boton" name="enviar" type="submit" value="Enviar">
                        </div>
                </form>     
                    <?php
                
}
            
?>

        <footer>
            <p><a href="../../index.html">Alex Asensio Sanchez</a></p>
            <p><a href="../indexProyectoTema3.php">Tema 3</a></p>
            <p><a target="blank" href="https://github.com/AlexAnacardo/204DWESProyectoTema3/tree/developer">GitHub del repositorio</a></p>
        </footer>
    </body>
</html>