Skip to content

Instantly share code, notes, and snippets.

@informagenie
Last active April 11, 2018 18:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save informagenie/12766e013a31bd46b61d631f7b7f037f to your computer and use it in GitHub Desktop.
Save informagenie/12766e013a31bd46b61d631f7b7f037f to your computer and use it in GitHub Desktop.
Form validation
<?php
function show_error($key)
{
global $errors;
return !empty($errors[$key]) ? '<div class="error">'. $errors[$key] .'</div>' : '';
}
if(!empty($_POST))
{
if(empty($_POST['nom'])) $errors['nom'] = "Le nom ne peut être vide";
if(!preg_match('/^([a-z0-9] )*$/i', $_POST['nom'])) $errors['nom'] = "Le nom doit contenir que les lettres et les chiffres";
if(empty($_POST['email']) OR !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $errors['email'] = "L'email entré n'est pas valide";
if(!empty($_POST['url']) && !filter_var($_POST['url'], FILTER_VALIDATE_URL)) $errors['url'] = "L'URL entré n'est pas valide";
if(empty($_POST['message'])) $errors['message'] = 'Le message ne peut être vide';
}
if(empty($errors))
{
echo 'JE VALIDE CES DONNEES AVEC SUCCESS';
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Exemple de ton code</title>
<style>
.error
{
color: red;
}
</style>
</head>
<body>
<form method="post" action="./">
<?php if(!empty($errors)): ?>
<legend>Les erreurs ont été trouvées</legend>
<?php endif; ?>
<div>
<label>Nom (*) </label>
<input type="text" name="nom">
<?= show_error('nom') ?>
</div>
<div>
<label>Email (*)</label>
<input type="email" name="email">
<?= show_error('email') ?>
</div>
<div>
<label>Site web</label>
<input type="text" name="url">
<?= show_error('url') ?>
</div>
<div>
<label>Message (*) </label>
<textarea name="message"></textarea>
<?= show_error('message') ?>
</div>
<input type="submit" value="Soumettre le formulaire">
</form>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment