Mammouth du PHP |
1141 Messages
23 janv. 2008, 10:54
je te propose une autre solution plus pratique et qui évitera à tes visiteurs de t'insulter à chaque fois qu'ils font une erreur dans le formulaire :
Faire une page PHP qui contient le formulaire HTML.
Ce formulaire a pour action lors de la soumission de renvoyer vers lui même.
Au début de la page, tu vérifies si le formulaire a été soumis. Si c'est le cas (c'est que tu as été renvoié sur cette même page après avoir validé le formulaire), tu effectues tes tests sur les champs.
Si tous les test sont bons, tu rediriges (via un header) vers une autre page. Sinon tu affiches le formulaire.
Tu remplis le formulaire avec les valeurs déjà remplis auparavant (c'est très important pour éviter faire rager l'internaute)
Si certains champs sont manquant ou mal remplis, tu affiches un message d'erreur à coté du champ.
structure :
<?php
//si le formulaire a été validé
if(isset($_POST['ok']){
//tests sur les champs
....
if(tous_les_tests_sont_bons())
header('Location page_suivante.php');
}
?>
<html>
....
<body>
//formulaire avec redirection vers la page actuelle
<form NAME=".." METHOD="POST" ACTION="<?php echo $_SERVER['PHP_SELF'];?>">
//tes champs
....
//exemple de champ avec remplissage de l'ancienne valeur si elle existe
<INPUT TYPE="text" NAME="champ1" value="<?php if(isset($_POST['champ1'])) echo $_POST['champ1'];?>" > <?php if(champ1_est_faux()) echo $message_erreur_champ_1;?>
//bouton de validation
<INPUT TYPE="SUBMIT" NAME="ok" value="ok">
</form>
</body>
</html>