📄 basic04.php

En la versión pública del portfolio los ejercicios PHP se muestran como código y no se ejecutan. ⬅ Volver

<?php
$nombre 
= "";
$apellidos = "";
$DNI = "";
$edad = "";
$email = "";
$genero = "";
$errores = [];
if (
$_SERVER["REQUEST_METHOD"] == "POST") {
    
$nombre = $_POST["nombre"];
    
$apellidos = $_POST["apellidos"];
    
$DNI = trim($_POST["dni"]);
    
$edad = $_POST["edad"];
    
$email = $_POST["email"];
    
$genero = $_POST["genero"] ?? "";


    if (empty(
trim($nombre))) {
        
$errores[] = "Campo nombre vacio";
    }
    if (empty(
trim($DNI))) {
        
$errores[] = "Campo dni vacio";
    } elseif (
strlen($DNI) !== 9 || !ctype_digit(substr($DNI, 0, 8)) || !ctype_alpha(substr($DNI, 8, 1))) {
        
$errores[] = "Formato de DNI no valido";
    } elseif (
strtoupper(substr($DNI, 8, 1)) !== substr("TRWAGMYFPDXBNJZSQVHLCKE", intval(substr($DNI, 0, 8)) % 23, 1)) {
        
$errores[] = "Letra del dni no valida";
    }
    if (!
ctype_digit($edad) || 18 > $edad || $edad > 150) {
        
$errores[] = "Edad no valida";
    }
    if (!
filter_var($email, FILTER_VALIDATE_EMAIL)) {
        
$errores[] = "formato de email no valido";
    }
    if (empty(
$errores)) {
        
header("Location:https://biwenger.as.com/");
        exit();
    }
}

?>
<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8">
    <title>Formulario de datos personales</title>
</head>

<body>
    <h1>Datos personales</h1>

    <form method="post" action="">
        <p>
            <label for="nombre">Nombre:</label>
            <input type="text" id="nombre" name="nombre" value="<?php echo htmlspecialchars($nombre); ?>">
        </p>
        <p>
            <label for="apellidos">Apellidos:</label>
            <input type="text" id="apellidos" name="apellidos" value="<?php echo htmlspecialchars($apellidos); ?>">
        </p>
        <p>
            <label for="dni">DNI:</label>
            <input type="text" id="dni" name="dni" value="<?php echo htmlspecialchars($DNI); ?>">
        </p>
        <p>
            <label for="edad">Edad:</label>
            <input type="text" id="edad" name="edad" value="<?php echo htmlspecialchars($edad); ?>">
        </p>
        <p>
            Género:
            <input type="radio" id="hombre" name="genero" value="hombre" <?php echo ($genero == "hombre") ? "checked" : ""; ?>>
            <label for="hombre">Hombre</label>
            <input type="radio" id="mujer" name="genero" value="mujer" <?php echo ($genero == "mujer") ? "checked" : ""; ?>>
            <label for="mujer">Mujer</label>
            <input type="radio" id="otro" name="genero" value="otro" <?php echo ($genero == "otro") ? "checked" : ""; ?>>
            <label for="otro">Otro</label>
        </p>
        <p>
            <label for="email">Email:</label>
            <input type="text" id="email" name="email" value="<?php echo htmlspecialchars($email); ?>">
        </p>
        <p>
            <input type="submit" value="Enviar">
        </p>
    </form>
    <?php
    
foreach ($errores as $error) {
        echo 
$error . "<br>";
    }
    
?>

</body>

</html>