PHP Formuliervalidatie - Valideren van E-mail en URL

Deze sectie toont hoe je naam, e-mail en URL kunt valideren.

PHP - Valideren van naam

De volgende code toont een eenvoudige methode om te controleren of het veld 'Naam' letters en spaties bevat. Als het veld 'Naam' ongeldig is, wordt een foutbericht opgeslagen:

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "Alleen letters en witruimte toegestaan!"; 
}

Opmerking:De functie preg_match() haalt het patroon van een string op, retourneert true als het patroon bestaat, anders false.

PHP - Valideren van E-mail

De volgende code toont een eenvoudige methode om de syntaxis van een e-mailadres te controleren. Als het e-mailadres ongeldig is, wordt een foutbericht opgeslagen:

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
  $emailErr = "Ongeldige e-mailformaat!"; 
}

PHP - Valideren van URL

De volgende code toont een methode om de syntaxis van een URL-adres te controleren (deze reguliere expressie staat ook schuine strepen in de URL toe). Als de syntaxis van het URL-adres ongeldig is, wordt een foutbericht opgeslagen:

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

PHP - Valideren van Naam, E-mail en URL

Nu is het script als volgt:

Voorbeeld

<?php
// Variabelen definiëren en op lege waarden instellen
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Naam is vereist";
  }
    $name = test_input($_POST["name"]);
    // Controleer of de naam letters en spaties bevat
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Alleen letters en witruimte toegestaan"; 
    }
  }
  if (empty($_POST["email"])) {
    $emailErr = "E-mail is vereist";
  }
    $email = test_input($_POST["email"]);
    // Controleer of de e-mailadres grammaticaal correct is
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
      $emailErr = "Ongeldige e-mailindeling"; 
    }
  }
  if (empty($_POST["website"])) {
    $website = "";
  }
    $website = test_input($_POST["website"]);
    // Controleer of de taal van de URL-adres geldig is (deze reguliere expressie staat ook onderstrepen in de URL toe)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%",
    =~_|]/i",$website)) {
      $websiteErr = "Ongeldige URL"; 
    }
  }
  if (empty($_POST["comment"])) {
    $comment = "";
  }
    $comment = test_input($_POST["comment"]);
  }
  if (empty($_POST["gender"])) {
    $genderErr = "Geslacht is vereist";
  }
    $gender = test_input($_POST["gender"]);
  }
}
?>

Voorbeeld runnen

Ik zal u in de volgende stap uitleggen hoe u voorkomt dat een formulier alle invoervelden leegt nadat de gebruiker het formulier heeft ingediend.