Bonjour chers membres #phpespacemembre

sylvio99 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   -
<?php
if (isset($_POST['inscription']))
{
if (empty($_POST['username'])|| !preg_match('/ [a-zA-Z0-9]+/', $_POST['username']))
{
$message='Votre nom utilisateur doit etre alphanumérique!';
}
elseif (empty($_POST['email'])|| !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
$message='Enter un mail valide';
}
elseif (empty($_POST['password'] )|| $_POST['password'] != $_POST['password2'])
{
$message="Entrer un mot de passe conforme!";
}
else
{
echo 'inscription validé' ;
}
}
?>
j'ai réalisé ce code php ci-dessus. je demande l'affichage de message d'erreur après vérification d'un champ mais il n'y a que le premier message (votre nom d'utilisateur doit etre alphanumérique) qui s'affiche. la vérification ne se fait pas au niveau des autres variables. comment faire?

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Bonjour,

Essaye plutôt une suite de if au lieu de elseif pour vérifier chaque paramètre. Utilise également un tableau pour enregistrer plusieurs messages :
<?php

$messages = [];

if (isset($_POST['inscription'])) {
	if (empty($_POST['username'])|| !preg_match('/ [a-zA-Z0-9]+/', $_POST['username'])) {
		$messages[] = 'Votre nom utilisateur doit etre alphanumérique!';
	}
	
	if (empty($_POST['email'])|| !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
		$messages[] = 'Enter un mail valide';
	}
	
	if (empty($_POST['password'] )|| $_POST['password'] != $_POST['password2']) {
		$messages[] = "Entrer un mot de passe conforme!";
	}
	
	if (!$messages) {
		echo 'inscription validé' ;
	}
}

foreach ($messages as $message) {
	echo $message;
}
1