Formulaire erreurs de remplissage

stanac Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -  
stanac Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -
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 436 Date d'inscription   Statut Membre Dernière intervention   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 53 Date d'inscription   Statut Membre Dernière intervention  
 
merci!! dsl pour le retard >> j'ai eu le tps de trouver entre temps mais merci
0