<!DOCTYPE html>
<!--
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/EmptyPHPWebPage.php to edit this template
-->
<html>
<head>
<meta charset="UTF-8">
<title>Plantilla de formularios - Alejandro De la Huerga</title>
<link rel="stylesheet" href="../webroot/css/estilos.css"/>
</head>
<body>
<header>
<h1>Alejandro De la Huerga Fernández</h1>
</header>
<h2>Plantilla de formularios</h2>
<?php
/**
* @author: Alejandro De la Huerga
* @since: 05/11/2025
* 25. Trabajar en PlantillaFormulario.php mi plantilla para hacer formularios como churros.
*/
require_once '../core/231018libreriaValidacion.php';
// Array que almacena las diferentes extensiones de archivos.
$aExtensiones=[
'.png',
'.jpg',
'.pdf',
'.word',
'.gif'
];
// Array que almacena los errores tanto obligatorios como opcionales.
$aErrores=[
'alfabeticoOb' =>'',
'alfabeticoOp' =>'',
'alfanumericoOb'=>'',
'alfanumericoOp'=>'',
'enteroOb'=>'',
'enteroOp'=>'',
'floatOb'=>'',
'floatOp'=>'',
'emailOb'=>'',
'emailOp'=>'',
'urlOb'=>'',
'urlOp'=>'',
'fechaOb'=>'',
'fechaOp'=>'',
'dniOb'=>'',
'dniOp'=>'',
'cpOb'=>'',
'cpOp'=>'',
'passwordOb'=>'',
'passwordOp'=>'',
'elementoLista'=>'',
'radio'=>'',
'checkbox'=>'',
'telefonoOb'=>'',
'telefonoOp'=>'',
'nombreArchivoOp'=>''
];
// Array que almacena las respuestas , inicializadas a null.
$aRespuestas=[
'alfabeticoOb' =>null,
'alfabeticoOp' =>null,
'alfanumericoOb'=> null,
'alfanumericoOp'=> null,
'enteroOb'=> null,
'enteroOp'=>null,
'floatOb'=> null,
'floatOp'=> null,
'emailOb'=>null,
'emailOp'=>null,
'urlOb'=>null,
'urlOp'=>null,
'fechaOb'=>null,
'fechaOp'=>null,
'dniOb'=>null,
'dniOp'=>null,
'cpOb'=>null,
'cpOp'=>null,
'passwordOb'=>null,
'passwordOp'=>null,
'elementoLista'=>null,
'radio'=>null,
'checkbox'=>null,
'telefonoOb'=>null,
'telefonoOp'=>null,
'nombreArchivoOp'=>null
];
define('MAX',255); // Constante que define el tamaño maximo de un campo (255).
define('MIN',0); // Constante que define el tamaño minimo de un campo (0).
define('OBLIGATORIO',1); // Constante booleana que define que un campo es obligatorio.
$entradaOK=true; //Variable booleana que valida que la entrada esta bien , inicializada a true.
$aRespuestasLista=['opcion1','opcion2','opcion3']; // Array que almacena las posibles respuestas de una lista.
$_REQUEST['radio'] = $_REQUEST['radio'] ?? null;
$_REQUEST['checkbox'] = $_REQUEST['checkbox'] ?? [];
if(isset($_REQUEST['enviar'])){ // código que se ejecuta cuando se envia el formulario.
// Valimos los datos para cada campos del formulario.
$aErrores['alfabeticoOb']= validacionFormularios::comprobarAlfabetico($_REQUEST['alfabeticoOb'], MAX, MIN, OBLIGATORIO);
$aErrores['alfabeticoOp']= validacionFormularios::comprobarAlfabetico($_REQUEST['alfabeticoOp'], MAX, MIN);
$aErrores['alfanumericoOb']= validacionFormularios::comprobarAlfaNumerico($_REQUEST['alfanumericoOb'], MAX, MIN, OBLIGATORIO);
$aErrores['alfanumericoOp']= validacionFormularios::comprobarAlfaNumerico($_REQUEST['alfanumericoOp'], MAX, MIN);
$aErrores['enteroOb']= validacionFormularios::comprobarEntero($_REQUEST['enteroOb'], MAX, MIN, OBLIGATORIO);
$aErrores['enteroOp']= validacionFormularios::comprobarEntero($_REQUEST['enteroOp'], MAX, MIN);
$aErrores['floatOb']= validacionFormularios::comprobarFloat($_REQUEST['floatOb'], MAX, MIN, OBLIGATORIO);
$aErrores['floatOp']= validacionFormularios::comprobarFloat($_REQUEST['floatOp'], MAX, MIN);
$aErrores['emailOb']= validacionFormularios::validarEmail($_REQUEST['emailOb'],OBLIGATORIO);
$aErrores['emailOp']= validacionFormularios::validarEmail($_REQUEST['emailOp']);
$aErrores['urlOb']= validacionFormularios::validarURL($_REQUEST['urlOb'],OBLIGATORIO);
$aErrores['urlOp']= validacionFormularios::validarURL($_REQUEST['urlOp']);
$aErrores['fechaOb']= validacionFormularios::validarFecha($_REQUEST['fechaOb'],OBLIGATORIO);
$aErrores['fechaOp']= validacionFormularios::validarFecha($_REQUEST['fechaOp']);
$aErrores['dniOb']= validacionFormularios::validarDni($_REQUEST['dniOb'],OBLIGATORIO);
$aErrores['dniOp']= validacionFormularios::validarDni($_REQUEST['dniOp']);
$aErrores['cpOb']= validacionFormularios::validarCp($_REQUEST['cpOb'],OBLIGATORIO);
$aErrores['cpOp']= validacionFormularios::validarCp($_REQUEST['cpOp']);
$aErrores['passwordOb']= validacionFormularios::validarPassword($_REQUEST['passwordOb'],100,2,OBLIGATORIO);
$aErrores['passwordOp']= validacionFormularios::validarPassword($_REQUEST['passwordOp']);
$aErrores['fechaOb']= validacionFormularios::validarFecha($_REQUEST['fechaOb'],OBLIGATORIO);
$aErrores['fechaOp']= validacionFormularios::validarFecha($_REQUEST['fechaOb']);
$aErrores['elementoLista']= validacionFormularios::validarElementoEnLista($_REQUEST['elementoLista'],$aRespuestasLista);
$aErrores['radio'] = isset($_REQUEST['radio']) ? validacionFormularios::validarElementoEnLista($_REQUEST['radio'], ['opcionR1','opcionR2','opcionR3']) : null;
$aErrores['checkbox'] = isset($_REQUEST['checkbox'])? validacionFormularios::validarElementoEnLista($_REQUEST['checkbox'], ['opcionCB1','opcionCB2','opcionCB3']): null;
$aErrores['telefonoOp']= validacionFormularios::validarTelefono($_REQUEST['telefonoOp'],OBLIGATORIO);
$aErrores['telefonoOb']= validacionFormularios::validarTelefono($_REQUEST['telefonoOb']);
$aErrores['nombreArchivoOp']= validacionFormularios::validarNombreArchivo($_REQUEST['nombreArchivoOp'],$aExtensiones,155);
// Si en el array de errores encuentra un error la variable entradaOK pasa a un valor false.
foreach ($aErrores as $campo => $valor) {
if($valor!=null){ // Si ha habido algun error $entradaOK es falso.
$entradaOK=false;
}else{
$aRespuestas[$campo]=$_REQUEST[$campo]; // Guardamos el dato correcto en el array de Respuestas.
}
}
}else{
$entradaOK=false; // Si el formulario no se ha rellenado nunca.
}
// Tratamiento del formulario.
if($entradaOK){
$aRespuestas['alfabeticoOb']=$_REQUEST['alfabeticoOb'];
$aRespuestas['alfabeticoOp']=$_REQUEST['alfabeticoOb'];
$aRespuestas['alfanumericoOb']=$_REQUEST['alfabeticoOb'];
$aRespuestas['alfanumericoOp']=$_REQUEST['alfabeticoOp'];
$aRespuestas['enteroOb']=$_REQUEST['enteroOb'];
$aRespuestas['enteroOp']=$_REQUEST['enteroOp'];
$aRespuestas['floatOb']=$_REQUEST['floatOb'];
$aRespuestas['floatOp']=$_REQUEST['floatOp'];
$aRespuestas['emailOb']=$_REQUEST['emailOb'];
$aRespuestas['emailOp']=$_REQUEST['emailOp'];
$aRespuestas['urlOb']=$_REQUEST['urlOb'];
$aRespuestas['urlOp']=$_REQUEST['urlOp'];
$aRespuestas['fechaOb']=$_REQUEST['fechaOb'];
$aRespuestas['fechaOp']=$_REQUEST['fechaOp'];
$aRespuestas['dniOb']=$_REQUEST['dniOb'];
$aRespuestas['dniOp']=$_REQUEST['dniOp'];
$aRespuestas['cpOb']=$_REQUEST['cpOb'];
$aRespuestas['cpOp']=$_REQUEST['cpOp'];
$aRespuestas['passwordOb']=$_REQUEST['passwordOb'];
$aRespuestas['passwordOp']=$_REQUEST['apasswordOp'];
$aRespuestas['elementoLista']=$_REQUEST['elementoLista'];
$aRespuestas['checkbox'] = isset($_REQUEST['checkbox']) ? $_REQUEST['checkbox'] : [];
$aRespuestas['telefonoOb']=$_REQUEST['telefonoOb'];
$aRespuestas['telefonoOp']=$_REQUEST['telefonoOp'];
$aRespuestas['nombreArchivoOp']=$_REQUEST['nombreArchivoOp'];
// Recorremos el array de respuestas con un foreach para mostrar las respuestas.
echo ("<div class=resultados>");
foreach($aRespuestas as $campo => $valor){
print("Su $campo es: ". $valor ."<br/>");
}
echo("</div>");
}else{ // Si no se ha ingresado correctamente volvemos a mostrar el formulario.
?>
<form name="formulario" action=<?php echo $_SERVER["PHP_SELF"]; ?> method="post">
<fieldset>
<label for="alfabeticoOb">AlfabaeticoOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="alfabeticoOb"
value='<?php echo (empty($aErrores['alfabeticoOb'])) ? ($_REQUEST['alfabeticoOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['alfabeticoOb']?> </a>
</label>
<br/>
<label for="alfabeticoOp">AlfabaeticoOp:
<input type="text" name="alfabeticoOp"
value='<?php echo (empty($aErrores['alfabeticoOp'])) ? ($_REQUEST['alfabeticoOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['alfabeticoOp']?> </a>
</label>
<br/>
<label for="alfanumericoOb">AlfanumericoOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="alfanumericoOb"
value='<?php echo (empty($aErrores['alfanumericoOb'])) ? ($_REQUEST['alfanumericoOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['alfanumericoOb']?> </a>
</label>
<br/>
<label for="alfanumericoOp">AlfanumericoOp:
<input type="text" name="alfanumericoOp"
value='<?php echo (empty($aErrores['alfanumericoOp'])) ? ($_REQUEST['alfanumericoOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['alfanumericoOp']?> </a>
</label>
<br/>
<label for="enteroOb">EnteroOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="enteroOb"
value='<?php echo (empty($aErrores['enteroOb'])) ? ($_REQUEST['enteroOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['enteroOb']?> </a>
</label>
<br/>
<label for="enteroOp">EnteroOp:
<input type="text" name="enteroOp"
value='<?php echo (empty($aErrores['enteroOp'])) ? ($_REQUEST['enteroOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['enteroOp']?> </a>
</label>
<br/>
<label for="floatOb">FloatOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="floatOb"
value='<?php echo (empty($aErrores['floatOb'])) ? ($_REQUEST['floatOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['floatOb']?> </a>
</label>
<br/>
<label for="FloatOp">FloatOp:
<input type="text" name="floatOp"
value='<?php echo (empty($aErrores['floatOp'])) ? ($_REQUEST['floatOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['floatOp']?> </a>
</label>
<br/>
<label for="emailOb">EmailOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="emailOb"
value='<?php echo (empty($aErrores['emailOb'])) ? ($_REQUEST['emailOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['emailOb']?> </a>
</label>
<br/>
<label for="emailOp">EmailOp:
<input type="text" name="emailOp"
value='<?php echo (empty($aErrores['emailOp'])) ? ($_REQUEST['emailOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['emailOp']?> </a>
</label>
<br/>
<label for="urlOb">UrlOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="urlOb"
value='<?php echo (empty($aErrores['urlOb'])) ? ($_REQUEST['urlOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['urlOb']?> </a>
</label>
<br/>
<label for="urlOp">UrlOp:
<input type="text" name="urlOp"
value='<?php echo (empty($aErrores['urlOp'])) ? ($_REQUEST['urlOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['urlOp']?> </a>
</label>
<br/>
<label for="fechaOb">FechaOb:
<input style="background-color:lightgoldenrodyellow;" type="date" name="fechaOb"
value='<?php echo (empty($aErrores['fechaOb'])) ? ($_REQUEST['fechaOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['fechaOb']?> </a>
</label>
<br/>
<label for="fechaOp">FechaOp:
<input type="date" name="fechaOp"
value='<?php echo (empty($aErrores['fechaOp'])) ? ($_REQUEST['fechaOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['fechaOp']?> </a>
</label>
<br/>
<label for="dniOb">DniOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="dniOb"
value='<?php echo (empty($aErrores['dniOb'])) ? ($_REQUEST['dniOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['dniOb']?> </a>
</label>
<br/>
<label for="dniOp">DniOp:
<input type="text" name="dniOp"
value='<?php echo (empty($aErrores['dniOp'])) ? ($_REQUEST['dniOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['dniOp']?> </a>
</label>
<br/>
<label for="cpOb">CPOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="cpOb"
value='<?php echo (empty($aErrores['cpOb'])) ? ($_REQUEST['cpOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['cpOb']?> </a>
</label>
<br/>
<label for="cpOp">FechaOp:
<input type="text" name="cpOp"
value='<?php echo (empty($aErrores['cpOp'])) ? ($_REQUEST['cpOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['cpOp']?> </a>
</label>
<br/>
<label for="passwordOb">PasswordOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="passwordOb"
value='<?php echo (empty($aErrores['passwordOb'])) ? ($_REQUEST['passwordOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['passwordOb']?> </a>
</label>
<br/>
<label for="passwordOp">PasswordOp:
<input type="text" name="passwordOp"
value='<?php echo (empty($aErrores['passwordOp'])) ? ($_REQUEST['passwordOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['passwordOp']?> </a>
</label>
<br/>
<label for="opcionR1">Opcion1
<input type="radio" name="radio" id="opcionR1" value="opcionR1"/>
</label>
<label for="opcionR2"> Opcion2
<input type="radio" name="radio" id="opcionR2" value="opcionR2"/>
</label>
<label for="opcionR3"> Opcion3
<input type="radio" name="radio" id="opcionR3" value="opcionR3"/>
</label>
<br/>
<label for="opcionCB1">Opcion1
<input type="checkbox" name="checkbox[]" id="opcionCB1" value="opcionCB1"/>
</label>
<label for="opcionCB2"> Opcion2
<input type="checkbox" name="checkbox[]" id="opcionCB2" value="opcionCB2"/>
</label>
<label for="opcionCB3"> Opcion3
<input type="checkbox" name="checkbox[]" id="opcionCB3" value="opcionCB3"/>
</label>
<br/>
<label for="listaOpciones">
Seleccione una opcion
<select name="elementoLista" id="select">
<option id="opcionS1" value="opcion1">Opcion 1</option>
<option id="opcionS2" value="opcion2">Opcion 2</option>
<option id="opcionS3" value="opcion3">Opcion 3</option>
</select>
</label>
<br/>
<label for="telefonoOb">TelefonoOb:
<input style="background-color:lightgoldenrodyellow;" type="text" name="telefonoOb"
value='<?php echo (empty($aErrores['telefonoOb'])) ? ($_REQUEST['telefonoOb'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['telefonoOb']?> </a>
</label>
<br/>
<label for="telefonoOp">TelefonoOp:
<input type="text" name="telefonoOp"
value='<?php echo (empty($aErrores['telefonoOp'])) ? ($_REQUEST['telefonoOp'] ?? '') : ''; ?>'/>
<a style=color:red;> <?php echo $aErrores['telefonoOp']?> </a>
</label>
<br/>
<label for="nombreArchivoOp">Archivo opcional:
<input type="file" name="nombreArchivoOp"
value='<?php echo (empty($aErrores['nombreArchivoOp'])) ? ($_REQUEST['nombreArchivoOp'] ?? '') : ''; ?>'/>
<a style="color:red;"><?php echo $aErrores['nombreArchivoOp'] ?></a>
</label>
<br/>
</fieldset>
<input type="submit" name="enviar" value="enviar">
</form>
<?php
}
?>
</body>
</html>