Problème tout simple sur un formulaire tout simple...

aventvoy
WRInaute discret
WRInaute discret
 
Messages: 169
Inscription: 17 Nov 2004

Problème tout simple sur un formulaire tout simple...

Message le Dim Juil 13, 2008 1:48

Bonjour à tous,
Imaginons une page "inscription.php" sur laquelle le visiteur doit entrer quelques informations basiques (nom, prénom, tel et email). Il n'y a rien d'autre sur cette page.
Si le visiteur remplit bien tous les champs, il est redirigé vers une deuxième page, "inscrit.php" par exemple, sur laquelle il a accès à différentes informations.
Si par contre certains champs sont mal ou pas renseignés, je ne veux pas qu'il soit redirigé vers "inscrit.php" mais qu'il ait un message d'erreur, sur cette même page "inscription.php"
J'ai donc mis en place toutes les vérifications nécessaires, genre
Code: Tout sélectionner
if ($prenom == '')
        {
            print "<li>Vous n'avez pas précisé votre prénom </li>\n";
        }

qu'il faut (avec une expression régulière pour le traitement de l'adresse email et du numéro de téléphone).
Donc si la personne remplit bien son formulaire, on arrive parfaitement sur la page "inscrit.php"

Sur ce formulaire, j'ai utilisé le code
Code: Tout sélectionner
<form action="./inscrit.php" " method="post">


Mon problème vient donc sans doute de là, de ce "form action". Car si le gars ne remplit pas bien le formulaire, il arrive quand même à la page "inscrit.php" alors qu'il devrait recevoir le(s) message(s) d'erreur ci dessus, avec son formulaire à remplir à nouveau.

J'ai utilisé la formule
Code: Tout sélectionner
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">

dans un autre formulaire, donc je vois bien comment faire pour retourner le formulaire avec les messages d'erreur en restant sur la même page mais mon problème c'est que je ne vois pas comment formuler le "si t'as bien rempli, tu vas sur cette page (inscrit.php), or else tu recommences ton formulaire...

Quelqu'un pourrait il me donner une indication?
Merci d'avance!
A.
PS: tout ça est encore pour le site de cette expédition maritime et à vocation humanitaire dont je m'occupe bénévolement... avec mon maigre savoir...

kalex
WRInaute discret
WRInaute discret
 
Messages: 241
Inscription: 14 Sep 2004

Message le Dim Juil 13, 2008 3:03

A priori, ça semble tout simple.

Je fait comme s'il n'y avait qu'une seule variable sur ton formulaire inscription.php :

Code: Tout sélectionner
if(isset($_REQUEST['email'])){
  if(!preg_match('/[a-z\.-]+@[a-z\.-]+/', $_REQUEST['email'])){
     /* Adresse email incorrecte */
    $valid = 0;
  }else{
     /* Adresse email OK */
    $valid = 1;
  }
}else{
  $valid = -1;
}

if($valid < 1){
    /* Le formulaire est va être affiché */
    if($valid == 0){
      echo 'Des erreurs ont été détectées, merci de corriger.<br/>';
    }
    echo 'Le formulaire: <form ...><input...>';
}else{
    /* Redirection HTTP */
    header('Location: inscrit.php');
}

aventvoy
WRInaute discret
WRInaute discret
 
Messages: 169
Inscription: 17 Nov 2004

Message le Dim Juil 13, 2008 3:08

Hello Kalex,
Je vais regarder ça demain, là c'est samedi soir, c'est l'heure de reposer les neurones.
A première vu ton code devrait me tirer d'affaire, merci!!
A.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité