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 :

Formulaire en 2 parties


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 25
    Par défaut Formulaire en 2 parties
    bonjour,
    voici mon petit probleme :
    je ne suis pas developpeur du tout mais j'utilise un script php pour recuperer les infos d'un formulaire.
    (pour comprendre : http://www.ventdautan.net/inscription.html)
    ce 1er formulaire utilise le fichier nadform0.php
    ce dernier affiche une page qui permet à l'internaute de corriger le 1er formulaire si il n'a pas rempli certains champs.
    Si non il lui permet d'accéder a la seconde partie du formulaire (inscription_suite.html) en actionnant un bouton "suite du formulaire"

    j'aimerais pouvoir éviter à l'utilisateur de passer par cette phase transitoire si il a correctement remplit le 1er formulaire.
    l'internaute remplit tout les champs, en validant il accede de suite a la suite du formulaire, si non il a le message de mauvaise saisie et se doit de corriger ses champs.

    Si vous pouvez m'aider , par avance merci.

  2. #2
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 398
    Par défaut
    Salut,

    il faut ajouter une redirection dans le fichier de contrôle 'nadform0.php'
    #concepts_redirection

    c'est normal que même si rien n'est remplis dans le premier formulaire on peut accéder au second ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 25
    Par défaut
    Citation Envoyé par Gats Voir le message
    Salut,

    il faut ajouter une redirection dans le fichier de contrôle 'nadform0.php'
    #concepts_redirection

    c'est normal que même si rien n'est remplis dans le premier formulaire on peut accéder au second ?
    merci pour cette rapide information,
    par contre au sujet de ta question .. non c'est pas normal, j'ai du merdouiller quelque part !
    je suis preneur de solutions

  4. #4
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 398
    Par défaut
    Pour t'aider plus il faudrait un bout de code du fichier. (bien sûr masque les informations sensible si ya)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 25
    Par défaut voici le fichier
    rien de bien secret donc voici le contenu de mon nadform0 :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head></head>
    <body>
    <div align="center">
      <?
    $MailTo = "A@B.C"; //adresse à laquelle sera envoyé le contenu du formulaire
    $MailCc = "X@Y.Z"; // adresse à laquelle sera envoyé un communiqué
    $MailSubject = "prise d'option page 1, $REMOTE_ADDR"; //texte qui va figurer dans le champ "sujet" du email
    $MailHeader = "From: $champD"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
     
    /* Les routines suivantes permettent à chacune des variables de prendre la valeur des champs du formulaire et de les stocker ensuite dans la variable globale MailBody qui constituera le corps du message */
     
    $Envoi = 1; //initialisation de la variable envoi à 1
     
    if ($champA == ""){ //nom du champ1
    echo("<font face=verdana size=2>Vous n'avez pas complété le nom du responsable.</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
    }
    else {
    $MailBody .= "Nom du responsable : $champA\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
    }
     
    if ($champB == ""){ //nom du champ1
    echo("<font face=verdana size=2>Vous n'avez pas complété l'adresse.</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
    }
    else {
    $MailBody .= "Adresse du responsable : $champB\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
    }
     
    if ($champD == ""){ //nom du champ1
    echo("<font face=verdana size=2>Vous n'avez pas complété l'adresse mail.</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
    }
    else {
    $MailBody .= "adresse mail : $champD\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
    }
     
    if ($champE == ""){ //nom du champ1
    echo("<font face=verdana size=2>Vous n'avez pas complété le code postal.</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
    $Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
    }
    else {
    $MailBody .= "code postal : $champE\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
    }
    if ($champF == ""){
    echo("<font face=verdana size=2>Vous n'avez pas complété la ville.</font><br>");
    $Envoi = 0;
    }
    else {
    $MailBody .= "Ville : $champF\n";
    }
    if ($champ14 == "0"){
    echo("");
    $Envoi = 1;
    }
    else {
    $MailBody .= "connu par : $champ14\n";
    }
    if ($champ15 == "0"){
    echo("");
    $Envoi = 1;
    }
    else {
    $MailBody .= "remarques : $champ15\n";
    }
     
    if ($Envoi == 0) echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"inscription.html\"><strong>Retour</strong></a></p>"); 
    //Envoi du message
     
    if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
    mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
    mail($MailCc, $MailSubject, $MailBody, $MailHeader); //envoi du communiqué (enlever // pour le rendre opérationnel
    echo("<p><font face=verdana size=2>Votre demande d'option a bien été envoyé.<br>Merci de poursuivre l'inscription.</font>"); 
    echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"inscription_suite.html\"><strong>Suite de l'inscription</strong></a></p>"); //affichage d'un message de confirmation.
    ?><?
    }
    ?>
      <A HREF="Javascript:history.go(-1)">En cliquant sur ce bouton retour, vous conservez les données saisies sur la page précédente. </A></div>
     
    </body>
    </html>

    voilà j'ai juste enlever le script du tracker de google analytics en fin de code avant la balise /body

    concernant la redirection qu'est ce que tu me conseille ? je ne peux pas utiliser de header ? je pense ? non ?

  6. #6
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 398
    Par défaut
    Pour le problème que j'évoquais :


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    if ($champ14 == "0"){
    	echo("");
    	$Envoi = 1;
    }
    else {
    	$MailBody .= "connu par : $champ14\n";
    }
    if ($champ15 == "0"){
    	echo("");
    	$Envoi = 1;
    }
    else {
    	$MailBody .= "remarques : $champ15\n";
    }

    cela devrait être $Envoi = 0;

    pour la redirection :
    Code php : 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
     
    // $text = "";
    	// ICI tes différentes vérification
    	// sauf que tu n'affiches pas directement par echo tu assignes dans une variable
    	// pour ne pas envoyer d'en-tete
    	// donc dans tes vérification tu trouveras
    	// $text .= "<font face=verdana size=2>Vous n'avez pas complété le nom du responsable.</font><br>";
     
     
    	if($Envoi)
    	{
                    mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
    		mail($MailCc, $MailSubject, $MailBody, $MailHeader); //envoi du communiqué (enlever // pour le rendre opérationnel
                    header('Location: inscription_suite.html');
    		exit;
    	}
    	else
    	{
    		echo $text;
    		echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"inscription.html\"><strong>Retour</strong></a></p>"); 
    	}

    j'ai pas le temps de faire plus ou mieux...je dois filer désolé.


    Tu as bien précisé que tu n'es pas développeur donc je te passerais les critiques négative, pour des soucis de sécurité évidente il y a pas mal de chose à revoir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire en plusieurs parties
    Par developpeurpouce dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2009, 15h21
  2. Formulaire en plusieurs parties, avec validation
    Par Flackou dans le forum Ruby on Rails
    Réponses: 15
    Dernier message: 20/05/2008, 16h32
  3. Réponses: 1
    Dernier message: 04/05/2008, 09h45
  4. Formulaire en plusieurs parties ? (avec controle des erreurs)
    Par fabseven dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 04/04/2008, 16h23
  5. Réponses: 4
    Dernier message: 09/08/2007, 10h26

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