Validar nombre, email y url en formulario php

Validar nombre, email y url en un formulario php.

Una de las reglas básicas de cerciorarte que el usuario que rellena un formulario no es un spammer o bromista, y quiere contactar con nosotros, es cerciorarte que los datos de contacto introducidos son validos.

Es evidente que es imposible saber si son reales o no, pero por lo menos algo evitaremos introduciendo métodos que validen que los datos introducidos están bien escritos y concatenados.

Vemos los tres tipos de validaciones, que son prácticamente obligatorias en cualquier formulario de contacto (también de otras índoles) que se precie.

  1. Validar nombre
  2. Validar correo electrónico (email)
  3. Validar url

Comenzamos…

Validar nombre, email y url en formulario php 1

 

Validar nombre (name)

Este código es la manera más simple de verificar que el campo «name» solo contiene letras y espacios en blanco. 

La función preg_match () busca la cadena en el patrón, y devuelve el resultado como verdadero o falso.

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "Solo letras o espacios en blanco"; 
}

Imprime el error en pantalla.

 

Validar correo electrónico (email)

Validaremos el correo electrónico con la función PHP filter_var (), que lo que realmente hace es filtrar lo que le indiquemos.

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "Formato de email incorrecto"; 
}

Imprime el error en pantalla.

 

Validar URL (website)

Con el ultimo código expuesto, verificamos que la sintaxis de una dirección URL es válida (se permiten guiones).

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
  $websiteErr = "URL incorrecta"; 
}

Imprime el error en pantalla.

Validar nombre, email y url en formulario php 2

 

Script de verificación de formulario

Ejemplo completo:

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Solo letras o espacios en blanco"; 
    }
  }

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Formato de email incorrecto"; 
    }
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
    // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
      $websiteErr = "URL incorrecta"; 
    }
  }

  if (empty($_POST["comment"])) {
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }

  if (empty($_POST["gender"])) {
    $genderErr = "Gender is required";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

 

Espero te sea útil.

 

Agregar comentario