Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

No te fíes del usuario

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

40 minutos

El club de ajedrez recibe una edad rara

Tu instituto abre una web para apuntarse al club de ajedrez. Alguien escribe "abc" en la edad. Otra persona deja el nombre vacío.

Si el servidor lo guarda todo sin mirar, tendrás una lista llena de basura.

Hoy aprendes a validar: comprobar cada dato antes de usarlo.

Palabras clave

PalabraQué significaEjemplo
ValidarComprobar que un dato tiene la forma correcta antes de usarlo.La edad es un número
LimpiarArreglar un dato sin cambiar lo que significa, como quitar espacios.trim($name)
filter_varUna función de PHP que comprueba si un dato es un correo, un número y más.filter_var($email, FILTER_VALIDATE_EMAIL)
Lista permitidaLos únicos valores que aceptas. Todo lo demás se rechaza.["bajo", "medio", "alto"]
RangoLos valores entre un mínimo y un máximo.de 14 a 99
Mensaje de errorLa frase que explica al visitante qué ha hecho mal.Escribe tu nombre.

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Tres preguntas para cada dato

Antes de usar un dato, hazle tres preguntas.

  1. ¿Existe? A lo mejor no ha llegado, o está vacío.
  2. ¿Tiene la forma correcta? Un correo lleva una arroba. Una edad es un número.
  3. ¿Está dentro del límite? Una edad de 300 años no es real.

Si falla una pregunta, no sigues. Avisas con un mensaje.

Pruébalo: comprobar un correo

Código: php
<?php
// Comprobamos tres direcciones de correo.
$emails = ["[email protected]", "ana@", "ana correo.es"];
foreach ($emails as $email) {
    if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
        echo $email . " -> no válido\n";
    } else {
        echo $email . " -> válido\n";
    }
}

filter_var hace el trabajo difícil

Comprobar un correo a mano es muy complicado. Por eso PHP trae filter_var.

Le das el dato y qué quieres comprobar. Si el dato vale, te lo devuelve. Si no vale, devuelve false.

Compara con === false, con tres signos igual. Así un número 0 válido no se confunde con un fallo.

Pruébalo: una edad entre 14 y 99

Código: php
<?php
// La edad tiene que ser un número entero entre 14 y 99.
$options = ["options" => ["min_range" => 14, "max_range" => 99]];
$texts = ["17", "13", "abc", "17.5"];
foreach ($texts as $text) {
    $age = filter_var($text, FILTER_VALIDATE_INT, $options);
    if ($age === false) {
        echo $text . " -> no vale\n";
    } else {
        echo $text . " -> edad " . $age . "\n";
    }
}

Ejemplo resuelto: qué pasa con cada edad

Lo que escribe¿Vale?Por qué
17SíEs un número entero entre 14 y 99.
13NoEs menor que 14.
100NoEs mayor que 99.
abcNoNo es un número.
17.5NoTiene decimales, no es entero.
(vacío)NoNo hay ningún dato.

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Repaso rápido: validar

Inténtalo

Repaso rápido: validar

3 preguntas
Pruébalo: tus respuestas se corrigen aquí y después se olvidan. Inicia sesión si quieres que se guarde tu puntuación y continuar donde lo dejaste.Iniciar sesión para guardar tu puntuación

Tus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.

Limpiar no es validar

Limpiar es arreglar un dato sin cambiar lo que dice. Por ejemplo, trim quita los espacios de los lados.

Validar es decidir si el dato vale o no.

Primero limpia y después valida. Un nombre con solo espacios se queda vacío al limpiarlo, y entonces lo rechazas.

La lección continúa

8 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.