IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérification serveur et retour formulaire


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Points : 132
    Points
    132
    Par défaut Vérification serveur et retour formulaire
    bonjour,

    j'ai créé un petit formulaire avec une vérification javascript et php

    je voudrais que la vérification php une foie effectuée si les champs obligatoires ne sont pas remplis qu'il revienne au formulaire et que les champs correctement remplis soient encore inscrit

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Sécurité dans les formulaires - Index.php</title>
    <script type="text/javascript">
    <script type="text/javascript">
    <!--
    function CheckInput() {
     
     test=true; 
     if((document.formulaire_contact.edit_nom.value == "") || (document.formulaire_contact.edit_telephone.value == "") || (document.formulaire_contact.edit_email.value == "")) 
     { 
        alert("Veuillez remplir les champs obligatoires (*) !"); 
     
            test=false; 
     } 
      return test; 
    }
    </script> 
    </head>
     
    <body>
    <form name="formulaire" action="envoi-formulaire.php" method="post" onSubmit="return CheckInput();">
    <?php
    $nom = (isset($_POST['edit_nom'])) ? $_POST['edit_nom'] : "";
    $prenom = (isset($_POST['edit_prenom'])) ? $_POST['edit_prenom'] : "";
    $societe = (isset($_POST['edit_societe'])) ? $_POST['edit_societe'] : "";
    $adresse = (isset($_POST['edit_adresse'])) ? $_POST['edit_adresse'] : "";
    $codepostal = (isset($_POST['edit_codepostal'])) ? $_POST['edit_codepostal'] : "";
    $localite = (isset($_POST['edit_localite'])) ? $_POST['edit_localite'] : "";
    $pays = (isset($_POST['edit_pays'])) ? $_POST['edit_pays'] : "";
    $telephone = (isset($_POST['edit_telephone'])) ? $_POST['edit_telephone'] : "";
    $gsm = (isset($_POST['edit_gsm'])) ? $_POST['edit_gsm'] : "";
    $email = (isset($_POST['edit_email'])) ? $_POST['edit_email'] : "";
    $message = (isset($_POST['textarea_message'])) ? $_POST['textarea_message'] : "";
    ?>
    <table width="60%"  border="0">
      <tr>
        <td width="35%"><span class="Style8">Nom *</span></td>
        <td width="70%"><input name="edit_nom" type="text" size="30" value="<?php echo $nom ?>" /></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Prénom *</span></td>
        <td width="70%"><input name="edit_prenom" type="text" size="30" value="<?php echo $prenom ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Société *</span></td>
        <td width="70%"><input name="edit_societe" type="text" size="30" value="<?php echo $societe ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Adresse *</span></td>
        <td width="70%"><input name="edit_adresse" type="text" size="30" value="<?php echo $adresse ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Code postal *</span></td>
        <td width="70%"><input name="edit_codepostal" type="text" size="30" value="<?php echo $codepostal ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Localité *</span></td>
        <td width="70%"><input name="edit_localite" type="text" size="30" value="<?php echo $localite ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Pays *</span></td>
        <td width="70%"><input name="edit_pays" type="text" size="30" value="<?php echo $pays ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Téléphone *</span></td>
        <td width="70%"><input name="edit_telephone" type="text" size="30" value="<?php echo $telephone ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">Gsm *</span></td>
        <td width="70%"><input name="edit_gsm" type="text" size="30" value="<?php echo $gsm ?>"/></td>
      </tr>
      <tr>
        <td width="35%"><span class="Style8">E-mail *</span></td>
        <td width="70%"><input name="edit_email" type="text" size="30" value="<?php echo $email?>"/></td>
      </tr>
     
    </table>
    <br />
    <table width="45%"  border="0">
      <tr>
        <td><span class="Style8">Votre message *</span></td>
      </tr>
      <tr>
        <td><textarea name="textearea_message" cols="40" rows="8" value="<?php echo $message?>"/></textarea></td>
      </tr>
    </table>
    <br />
    * Champs obligatoires
    <br /><br />
    <input name="bouton_envoyer" type="submit" value="Envoyer" />
    <input name="bouton_initialiser" type="reset" value="Initialiser" />
     
    </form>
    </body>
    </html>
    voilà le code de mon formulaire avec la vérification en javascript le problème est si le client désactive javascript

    donc j'ai fait une vérif côté serveur avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
     $edit_nom = trim($_POST['edit_nom']); 
     $edit_prenom = $_POST['edit_prenom']; 
     $edit_societe = $_POST['edit_societe'];
     $edit_adresse = $_POST['edit_adresse'];
     $edit_codepostal = $_POST['edit_codepostal'];
     $edit_localite = $_POST['edit_localite'];
     $edit_pays = $_POST['edit_pays']; 
     $edit_telephone = trim($_POST['edit_telephone']); 
     $edit_gsm = $_POST['edit_gsm'];
     $edit_email = trim($_POST['edit_email']);
     $textearea_message = $_POST['textearea_message'];
     
     $destinataire = "belgique@foliopub.com" ; 
     $sujet = "Contact" ; 
         if($edit_nom && $edit_telephone && $edit_email)
    {
     $message = "Contact \n \n
                 
    			 Nom : $edit_nom \n
    			 Prénom : $edit_prenom \n
    			 Société : $edit_societe \n
    			 Adresse : $edit_adresse \n
    			 Code postal : $edit_codepostal \n
    			 Localité : $edit_localite \n
    			 Pays : $edit_pays \n
    			 Téléphone : $edit_telephone \n
    			 Gsm : $edit_gsm \n
    			 Email : $edit_email \n 
    			 Message : $textearea_message ";
     $entetes = "From: belgique@foliopub.com " ; 
     mail($destinataire, $sujet, $message, $entetes);
       }
     else
     {
    die('Vous n\'avez pas rempli tous les champs obligatoires du formulaire ');
     
     
    }
     ?>
    ce qui marche très bien d'ailleurs mais le problème c'est que je voudrais revenir sur mon formulaire en laissant les champs correct indiqués. car là ca me dit "vous n'avez pas rempli leschamps....) mais ca reste sur la même page

    j'espère que je suis assez clair

    merci pour votre aide

  2. #2
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    Pour faire cela, moi je garde les données déjà saisies en session et je les affiche tout simplement en valeur par défaut des inputbox.
    Si la session est vide, ça n'affiche rien et si la personne a déjà rempli quelque chose, ça rempli avec ses données

    N'oublie pas de vider la session une fois le formulaire correctement validé et envoyé

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    Bonjour,
    C'est normal que ça reste sur la même page.
    Sur la page action du formulaire on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($edit_nom && $edit_telephone && $edit_email)
    { OK ... }
    else
    {
    die('Vous n\'avez pas rempli tous les champs obligatoires du formulaire ');
    }
    Si ce n'est pas OK, il faudrait réafficher le formulaire, avec un message à coté des champs vides, et pas juste dire "vous n'avez pas rempli ..."
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
        <td width="35%"><span class="Style8">Nom *</span></td>
        <td width="70%"><input name="edit_nom" type="text" size="30" value="<?php echo $edit_nom;?>" /> <?php if ($edit_nom == "") echo " champ obligatoire";?></td>
    </tr>
    Sinon, dans le 1er script, je ne vois pas trop l'utilité de tester des champs POST qui n'existent pas, et d'afficher "" avec un echo, à moins que envoi-formulaire.php soit le formulaire lui-même.
    Dernier détail, le javascript contrôle "formulaire_contact", alors que le formulaire s'appelle "formulaire" ...

Discussions similaires

  1. Lien retour formulaire
    Par VFone dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2007, 17h34
  2. Vérification e-mail dans formulaire
    Par pp51 dans le forum Langage
    Réponses: 8
    Dernier message: 21/01/2007, 21h42
  3. Réponses: 2
    Dernier message: 26/12/2006, 17h03
  4. [Load balancing] Quel serveur de retour ?
    Par ruready dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 6
    Dernier message: 11/05/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo