Bonjour chers membres #phpespacemembre

sylvio99 Messages postés 1 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
<?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 2845 Statut Membre 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