Formulaire erreurs de remplissage

stanac Messages postés 62 Statut Membre -  
stanac Messages postés 62 Statut Membre -
Bonjour,

J'ai un petit problème.
J'ai crée pour m'entraîner un formulaire d'inscription à un site imaginaire!!... Ce formulaire est capable de détecter des erreurs de remplissages et d'afficher des messages d'erreurs. Cependant je ne sais pas comment faire pour positionner les messages d'erreurs à côté du champ concerné (dans ma page il se place au-dessus du formulaire).. Faut il utiliser du javascript ou du PHP et quelle code faut il écrire?

(Si le code peut vous aider..)

Le script du formulaire:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Formulaire d'inscription</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="design" href="design_formulaire.css" />
   </head>
   <body>
   
   <form method="post" action="verif_formulaire.php">

		<fieldset>
			<legend>Identifiants</legend>

<table>
<tr>
		<td><label>Entrer votre pseudo :</label></td>
		<td><input type="text" name="pseudo" size="30" maxlength="20" value="<?php echo $_POST['pseudo']; ?>" /></td>	
		
</tr>
<tr>
</tr>
<tr>
	
		<td><label>Entrer votre mot de passe :</label></td>
		<td><input type="password" name="password" size="30" maxlength="30" value="<?php echo $_POST['password']; ?>"/></td>
</tr>
<tr>
</tr>
<tr>

	
		<td><label>Confirmation de votre mot de passe :</label></td>
		<td><input type="password" name="password_confirmation" size="30" maxlength="30" value="<?php echo $_POST['password_confirmation']; ?>" /></td>
</tr>
<tr>
</tr>
<tr>

	
		<td><label>Entrer votre adresse e-mail :</label></td>
		<td><input type="text" name="email" size="30" maxlength="50" value="<?php echo $_POST['email']; ?>"/></td>
</tr>
<tr>
</tr>
<tr>

	
		<td><label>Confirmation de votre adresse e-mail :</label></td>
		<td><input type="text" name="email_confirmation" maxlength="50" size="30" value="<?php echo $_POST['email_confirmation']; ?>"/></td>
</tr>
<tr>
</tr>
<tr>

	
		<td><input type="submit" value="valider"/></td>
</tr>
</table>
		</fieldset>
       
   </body>
</html>


Le script de vérification du formulaire

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Vérification du formulaire</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
   <body>
<?php
// Connexion au serveur mysql
$connect = mysql_connect("localhost", "stanislas2.cote", "xxxxxxxxxxx")
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db("stanislas2_cote")
or die('Impossible de se connecter : ' . mysql_error());

// création de variables
$message_erreur = 'Les champs suivants doivent être correctement remplis : <br>';
$message_ok = 'Vos identifiants ont bien été enregistrés. <br> Vous pouvez maintenant vous connecter sur le site. <br>';
$message = $message_erreur;
$message_correspondance = '<b>Certaines donnees n\'ont pas été entrées correctement.</b>';
$message_correspondance_password = '<b>Les deux mots de passe ne correspondent pas.</b>';
$message_correspondance_email = '<b>Les deux adresses emails ne correspondent pas.</b>';

 

// Si des champs n'ont pas été remplis
if (empty($_POST['pseudo']))
$message .= 'Votre pseudo <br>';
if (empty($_POST['password']))
$message .= 'Votre mot de passe <br>';
if (empty($_POST['password_confirmation']))
$message .= 'Votre confirmation de mot de passe <br>';
if (empty($_POST['email']))
$message .= 'Votre adresse e-mail <br>';
if (empty($_POST['email_confirmation']))
$message .= 'Votre confirmation d\'adresse e-mail <br>';

if (strlen($message) > strlen($message_erreur))
{
	// On affiche les champs non remplis
	echo $message_correspondance .'<br>';
	echo $message .'<br>';
	// On réaffiche le formulaire
	include ("formulaire.php");
	// On arrête le code.
	exit();
} 

else 
{
	// On les range dans un tableau
	foreach($_POST as $index => $valeur) 
	{
    $$index = mysql_real_escape_string(trim($valeur));
	}
} 


// On vérifie le format de l'adresse email
if (isset($_POST['email']))
{
$_POST['email'] = htmlspecialchars($_POST['email']);
	 // si elle est bien compatible avec ce regex
	 if (preg_match("#^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
	 {
	 // On continue le code.
	 }
	 // Si elle n'est pas compatible
	 else
	 {
	 echo $message_correspondance;
	 echo 'L\'adresse email '. $_POST['email'] .' n\'a pas été rentré dans un format correcte.<br>';
	 // On affiche à nouveau le formulaire
	include("formulaire.php");
	// On arrête le code ici
	exit; 
	 }
}

// On vérifie le format du mdp
if (isset($_POST['password']))
{
$_POST['password'] = htmlspecialchars($_POST['password']);
	 // si il est bien compatible avec ce regex
	 if (preg_match("#^[a-zA-Z0-9._-]+$#", $_POST['password']))
	 {
	 // On continue le code.
	 }
	 // Si il n'est pas compatible
	 else
	 {
	 echo $message_correspondance;
	 echo 'Le mots de passe'. $_POST['password'] .' n\'a pas été rentré dans un format correcte.<br>';
	 // On affiche à nouveau le formulaire
	include("formulaire.php");
	// On arrête le code ici
	exit(); 
	}
}

// Si les 2 mdp ne correspondent pas
if ($_POST['password'] != $_POST['password_confirmation'])
{
	// On affiche un message d'erreur
	echo $message_correspondance_password .'<br>';
	// On affiche à nouveau le formulaire
	include("formulaire.php");
	// On arrête le code ici.
	exit();
}


// Si les 2 emails ne correspondent pas
if ($_POST['email'] != $_POST['email_confirmation'])
{
	// On affiche un message d'erreur
	echo $message_correspondance_email .'<br>';
	// On affiche à nouveau le formulaire
	include("formulaire.php");
	// On arrête le code ici.
	exit();
}



// On enregistre les données dans une base de donnees
$sql = "INSERT INTO membres VALUES ('', '".$pseudo."', '".$password."', '".$email."', now())";
$res = mysql_query($sql);
//On confirme l'inscription
if ($res) 
{
    echo $message_ok;
}
//message si erreur sur my/sql
else 
{
    echo mysql_error();
} 

?>
 
</body>
</html>
A voir également:

1 réponse

IpIpIpIpOne Messages postés 480 Statut Membre 116
 
Le mieux, c'est certainement de faire ça avec "AJAX".

Voici un petit lien vers un tutoriel pour faire ça : http://blog.aguillem.fr/36-tutoriel-javascript-php-ajax-verifier-les-donnees-d-un-formulaire

Bon entrainement !
0
stanac Messages postés 62 Statut Membre
 
merci!! dsl pour le retard >> j'ai eu le tps de trouver entre temps mais merci
0