Exemple de contrôle en PHP:
La page formulaire.php3 affiche le formulaire ET fait les contrôles. La page est réaffichée tant que les contrôles ne sont pas bons.
Quand ils le sont, on revoie vers un autre script avec HTTP-EQUIV...
En général, je fait tout dans le même script :
Test des valeurs.
Traitement des valeurs si OK, sinon, affichage du formulaire avec un message d'erreur.
Au premier passage, le test des valeurs n'est pas fait car aucune variable n'est envoyée au script (Test de l'existance de la variable du boutton submit par exemple).
Ce genre de contrôle ne vaut le coùt que si on doit faire accès à une base de données pour les vérifications, genre mot de passe, eMail... Pour des contrôles de numéricité ou de longueur comme dans l'exemple, il vaut mieux utiliser JavaScript. Y'a pas d'raison de déranger le serveur pour si peut alors que le navigateur peut le faire !
Dans l'exemple suivant, les valeurs sont renvoyées vers un autre script avec HTTP-EQUIV ! Je l'ai fait juste pour voir... Mais franchement je trouve que c'est pas BÔ !
Exemple de page formulaire.php3
<HTML>
<HEAD>
<?php
// Ici, on commence par tester si le formulaire nous a transmis quelque chose
if ( isset($BTN) )
{
// Si c'est le cas, il faut vérifier les valeurs
if ( strlen($CP) != 5 )
{
// Les valeurs ne sont pas bonnes, on met un message sur la page
$mess = "Le code postal doit comporter 5 chiffres";
}else{
// Les valeurs sont bonnes, ont traite les données du formulaire ou on passe éventuellement le controle à une autre page.
echo("<META HTTP-EQUIV='REFRESH' CONTENT=\"0;URL='Pagesuivante.php3?CP=$CP&VILLE=$VILLE'\">" );
exit();
}
}
?>
</HEAD>
<BODY>
<?php
// Afficher le formulaire avec les anciennes valeurs si elles existent
if (isset( $mess ) )
{
echo("<B>ERREUR DE SAISIE : $mess</B><BR>" );
}
echo("<FORM ID='FRM' ACTION'formulaire.php3'>" );
echo("Code postal : <INPUT type='text' NAME='CP' value='$CP'><BR>" );
echo("Ville : <INPUT TYPE='texte' NAME='VILLE' value='$VILLE'><BR>" );
echo("<INPUT type='submit' name='BTN' value='envoyer'><BR>" );
echo("</FORM>" )
?>
</BODY>
</HTML>
N'hésite pas si t'as des questions.