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 :

Mettre formulaire en session et site en includes et plusieurs formulaires [PHP 5.2]


Sujet :

Langage PHP

  1. #41
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Bonsoir,

    Dans ce contexte, je n'utiliserais pas les sessions.
    Sans vouloir interférer Fox, suite aux nombreuses pistes que tu as fournies.
    C'est juste un avis, ou plutôt comment j'aurais procédé.

    On sait que chaque formulaire a son fichier de traitement, independant ou pas, peu importe.

    Mais là où je bute, c'est que je voudrais que quand le visiteur valide et qu'ils y a une erreur qui s'affiche, que celui-ci puisse revenir sur le formulaire.php disons en faisant précédent et là il revient sur le formulaire.php et celui-ci est pré-rempli des infos qu'ils a déjà rentré.
    Mais pourquoi revenir sur le formulaire ? Il y a des solutions plus simples et au demeurant viables.

    Le principe, est que la vérification doit s'effectuer sur la même page que le formulaire en cours.

    Exemple à la vite-fait, pas fait gaffe à la syntaxe :

    Fichier cette_meme_page.php
    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
    if(isset($_POST['c_action'])) $c_action=$_POST['Insertion_1'];
    {
        if(empty($nom)OR empty($truc)OR empty($bidule))
        { 
        print("ESPACE MESSAGE D'ERREUR OU INCLUDE IMAGE ERREUR");
        } 
        else
        {
        //OK ICI... REQUETE D'ENREGISTREMENT
        // OU INCLUDE PAGE DE TRAITEMENT PHP
        // + REDIRECTION OU L'ON VEUT APRES TRAITEMENT
        }
    }
    
    
    ICI FORMULAIRE, EXEMPLE :
    <form method="POST" action="cette_meme_page.php">
    <input type="hidden" name="c_action" value="Insertion_1">
    <input type="text" name="nom" <?print ("value='$nom'");?>>
    ETC...
    On remarque que le formulaire renvoye vers sa propre page, tant que toutes les conditions ne sont pas remplies.
    Et dans le même temps, que les valeurs déjà saisies sont préservées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?print ("value='$nom'");?>>
    Pas trouvé plus simple
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  2. #42
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    alain31tl merci de ton intervention.

    Oui tu n'as pas tord pour les Session, j'ai acheter récemment :

    "Le Guide de survie PHP 5 et MySQL 5"

    Et ils mentionnent ça aussi, car dans mon cas c'est pas un formulaire de connexion donc pas besoin de garder en session.
    Mais si une personne rempli 2 formulaire sa peut être bien de garder au moins Nom et Prénom ainsi que mail, car j'ai 4 formulaire et il est envisageable que 2 soit rempli par un même visiteur donc j'aimerai mettre certain petit champs text en session pour prévoir.

    FoxLeRenard et Xunil on en fait répondu a ma demande qui étais de vouloir des Session.

    Sinon en tous cas là je vais inclure le traitement dans la même page et faire tout en normal hors Session, sauf Nom, prenom,Mail.
    Disons les choses qui change pas pour le même utilisateur.

    Merci de votre aide, bon j'essaye de mettre tous ça en place mais peu de temps.

    Le champs Hidden c'est quoi son utilité dans ton exemple.

    Je suis débutant comme tu peut le voir, j'ai j'imagine toutes les infos mais j'arrive pas a bien les exploité.
    Peit tu décrire un tous petit peu plus.

    En tous cas je manque pas de donner les news de m'est avancé.

    PS: Pourriez vous mettre une ligne d'exemple car sinon j'arrive pas vraiment a exploité votre aide.

  3. #43
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par NuDub Voir le message
    Le champs Hidden c'est quoi son utilité dans ton exemple
    .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="c_action" value="Insertion_1">

    Simplement une variable cachée, dont l'utilisateur n'a que faire, mais qui permet à ton script de vérifier qu'une action "POST" a été effectuée ou pas.

    Si pas effectué, ton formulaire reste affiché dans le cas de l'exemple ci-dessus.
    Voire même si tous les champs n'ont pas été remplis.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  4. #44
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    D'accord, je vois un peu le truc.

    Pour le moment je laisse les session de côté et j'essaye de refaire le traitement que je vais inclure en haut du formulaire ou en include.

    Du coup j'essaye de repartir sur un code simple, car je vois les idées que chacun me donne mais il me faut un peu de temps pour la syntaxe.

    Pour les champs qui seraient bien de mettre en Session je vais du coup attendre un peu car sinon je vais jamais m'en sortir.

    sinon précédemment tu parlais de ton code il y a un moment après les 2 "if" où soit on inclut un message ou une image d'erreur.
    Puis plus bas tu met "+ Redirection" donc j'imagine que tu pensai a un "header" mais si je met un message a affiché dans le "print" le Header va pas vouloir marcher comment je peu palier a ce problème ?

    Merci

  5. #45
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Tu peux créer une redirection avec javascript, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("<script type=\"text/javascript\">window.location.href = \"autre_page.php\";</script>");
    Mais c'était juste pour l'exemple, je ne connais pas ta structure de navigation, si elle est réalisée en pseudo-frames php par exemple, ou pas.

    A la place de la redirection, tu peux aussi (autre exemple), afficher un message comme quoi l'enregistrement a bien été effectué.
    En fait, avec les conditions, tu fais ce que tu veux, il n'y pas de règles. .
    A toi de voir comment tu veux orienter l'utilisateur aprés chaque action de sa part.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  6. #46
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    alain31tl, merci pour ces infos.

    En fait l'idéal, et, avec les conseil reçus, se serai d'afficher un message pour dire que c'est ok tous c'est bien déroulé puis faire un redirection automatique sur l'accueil.

    Sinon je viens de retravaillé mon code, cette fois tous sur le formulaire.php.
    Et en m'aidant du livre que j'ai acheter.
    Mais c'était juste pour l'exemple, je ne connais pas ta structure de navigation, si elle est réalisée en pseudo-frames php par exemple, ou pas.
    En fait il y a l'accueil et toutes les pages viennent s'inclure au milieu.
    Et ces pages ne sont que le contenu, ainsi j'ai une fois le menu et la structure et le contenu de chaque page vient s'inclure au milieu de l'accueil.

    Sinon le nouveau code ne dois pas être top malgré avoir suivi le bouquin.

    Le voici (sans la partie mail car elle est longue car c'est une class qui est utilisé)

    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <?php
    ///Vérification du captcha avec les paramètre suivant.
    if (isset($_POST['Envoie'])&& isset($_POST['vcaptcha']))
    	{
    		if ($_POST['vcaptcha']!==($_SESSION['captcha_control'])) //Si la chaine saisie par lutilisateur ne correspond pas Ã* celle stocké en session...
    		{
    			echo 'Le captcha que vous avez saisi n\'est pas correct !';//message si la saisie est fause
    			exit;//le script ne continue pas
    		}
    			elseif ($_POST['vcaptcha']==($_SESSION['captcha_control']));//sinon c'est OK on continue la suite du script
    			 {
    if (isset($_POST['Envoie'])&& isset($_POST['Nom'])&& trim($_POST['Nom'])!= '')$nom = ($_POST['Nom']);
    if (isset($_POST['Envoie'])&& isset($_POST['Prenom'])&& trim($_POST['Prenom'])!= '')$prenom = ($_POST['Prenom']);
    if (isset($_POST['Envoie'])&& isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])&& trim($_POST['Nom_du_groupe_ou_nom_d_artiste'])!= '')$artiste = ($_POST['Nom_du_groupe_ou_nom_d_artiste']);
    if (isset($_POST['Envoie'])&& isset($_POST['Mail'])&& trim($_POST['Mail'])!= '')$email = ($_POST['Mail']);
    if (isset($_POST['Envoie'])&& isset($_POST['Message'])&& trim($_POST['Message'])!= '')$message = ($_POST['Message']);
     
    			 /////Envoi du mail  avec PHPmailer
    //--------avec juste la condition qui cloture la section du mail---//
    	if(!$mail->Send()){ //Teste le return code de la fonction
           echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
    		}
    		echo("<center><br><br><br><h2 class='msgOK'>votre demande d'informations &agrave; &eacute;t&eacute; envoyer</h2><br><br><br><br><a href=/index.php>Cliquez ici pour revenir &agrave; l\'accueil</a></center>");
    	}
    	 }else {
    ?>
    <!--Javascript pour la verification des saisie dans le formulaire-->
    <!--////début du script JAVA-->
    <script type="text/javascript" language="Javascript" >
    <!--
    function verification()
    {
    	if(document.formulaire_informations.Nom.value == "") { //vérification du champs NOM
      alert("Veuillez entrer votre Nom svp");
      document.formulaire_informations.Nom.focus();
      return false;
     }
      else
     if(document.formulaire_informations.Prenom.value == "") { //vérification du champs PRENOM
       alert("Veuillez entrer votre Prenom svp");
       document.formulaire_informations.Prenom.focus();
       return false;
    }
        else
     if(document.formulaire_informations.Nom_du_groupe_ou_nom_d_artiste.value == "") { //vérification du champs NOM DU GROUPE
       alert("Veuillez entrer votre Nom de Groupe ou nom d'artiste svp");
       document.formulaire_informations.Nom_du_groupe_ou_nom_d_artiste.focus();
       return false;
    }
      else
     if(document.formulaire_informations.eMail.value.indexOf('@') == -1) { //vérification du champs eMAIL
       alert("Ce n'est pas une adresse mail, verifiez la svp");
       document.formulaire_informations.eMail.focus();
       return false;
     }
        else
       if(document.formulaire_informations.Message.value == "") { //vérification du champs MESSAGE
       alert("Veuillez entrer le texte de votre message svp");
       document.formulaire_informations.Message.focus();
       return false;
      }
    return true
    }
    //-->
    </script>
    <!--///fin du Script-->
    <!--Description du formulaire-->
      <h2 class="titre">Informations complementaires</h2>
      <p>Ce formulaire vous permet de nous faire part de vos demandes d'informations complémentaire.<br />
      </p>
      <!--Fin description du formulaire-->
      <!--Début du formulaire-->
    <form class="formulaire" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" name="formulaire_informations" onSubmit="return verification()">
      <!--//Champs pour les informations personnels-->
      <fieldset>
        <legend>Informations</legend>
        <table width="540" height="176" border="0">
          <tr>
            <td width="218"><label>Nom : </label></td>
            <td width="312"><input name="Nom" type="text" value="<?php echo (isset($_POST['Nom'])) ? htmlspecialchars($_POST['Nom']) : ''; ?>"/></td>
          </tr>
          <tr>
            <td><label>Prenom :</label></td>
            <td><input name="Prenom" type="text" value="<?php echo (isset($_POST['Prenom'])) ? htmlspecialchars($_POST['Prenom']) : ''; ?>" /></td>
          </tr>
          <tr>
            <td><label>Nom du groupe ou nom d'artiste :</label></td>
            <td><input name="Nom_du_groupe_ou_nom_d_artiste" type="text" value="<?php echo (isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])) ? htmlspecialchars($_POST['Nom_du_groupe_ou_nom_d_artiste']) : ''; ?>" /></td>
          </tr>
          <tr>
            <td><label>eMail :</label></td>
            <td><input name="Mail" type="text" value="<?php echo (isset($_POST['Mail'])) ? htmlspecialchars($_POST['Mail']) : ''; ?>" /></td>
          </tr>
          <tr>
            <td height="68" colspan="2"><label>Message :<br />
                <textarea name="Message" cols="30" rows="10" wrap="virtual" value=""><?php echo (isset($_POST['Message']))? htmlspecialchars($_POST['Message']): ''; ?></textarea>
              </label></td>
          </tr>
          <tr>
            <td height="68"><label for="captcha">
              <input name="vcaptcha" type="text"/>
            </label></td>
            <td height="68">Recopiez le mot :
              <script type="text/javascript">
    function captchaRefresh() {
         document.getElementById("captcha").src = 'includes/gene_captcha.inc.php?'+Math.floor(Math.random()*1000);
    }
              </script>
              <img src="includes/gene_captcha.inc.php" id="captcha" alt="captcha_informations" />
            <input type="button" onclick="captchaRefresh()" value="Actualiser" /></td>
          </tr>
        </table>
      </fieldset>
      <!--Bouton d'envoi et réinitialisé-->
      <input name="Reinitialise" type="reset" value="R&eacute;initialiser" />
      <input name="Envoie" type="submit" value="Envoyer" />
    </form>
    <?php 
    	}
    ?>
    <!--Fin du formulaire-->
    Donc en fait le livre me donne l'exemple pour une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    if (isset($_POST['Envoie'])&& isset($_POST['Nom'])&& trim($_POST['Nom'])!= '')$nom = ($_POST['Nom']);
    ?>
    Donc j'ai supposé que je devais faire pareil mais juste changer la valeur du POST sauf pour ENVOIE qui correspond au SUBMIT.

    Ensuite j'ai rajouter le $nom = ($_POST['Nom']) pour simplifié l'utilisation de la class mail.

    Comment j'ai testé mon code

    Donc comme il y a du Javascript, une fois sur le formulaire je le désactive, ensuite je simule l'oubli d'un champs pour provoquer l'erreur.

    Et je valide, mais le problème c'est qu'il me renvoie sur l'accueil.
    J'ai aucun message d'erreur juste je suis envoyé sur l'accueil.

    Et bizarrement même quand je rempli tous correctement il me revoie sur l'accueil.

    Voilà je comprend pas où est le problème, hormis les choses que j'ai ajouté et la manière d'ajouté chaque champs j'ai recopier le code du livre.

    Je n'ai comme on peu le voir aucune redirection, pourquoi me renvoit-il a l'accueil?

    Merci de votre aide.

  7. #47
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    Je repassais dans le coin, et je me demandes si tu ne recules pas

    Il me semblais qu'au minimum tu avais compris que empty était hyper mauvais
    Et qu'il fallait traiter tout ces POST SESSIONS etc... au début des pages puis ne plus utiliser que les variables ??
    comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?PHP
    session_start();
    if (!isset($_SESSION['nom'])) {$_SESSION['nom']="";$nom="";}
         else {$nom=$_SESSION['nom'];}
    if(isset($_POST['Nom'])) $nom=$_POST['Nom']; 
    else $nom="";
    $_SESSION['nom']=$nom;
    Alors quand je relis cela, je crains que tu ais du mal a t'en sortir !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    if (isset($_POST['Envoie'])&& !empty($_POST['vcaptcha']))
      {
      if ($_POST['vcaptcha']!==($_SESSION['captcha_control'])) 		  
        {
        }

  8. #48
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    FoxLeRenard bonjours.

    Effectivement je en m'en sors pas du tous, du coup je me suis dis laisse tomber les SESSION, car comme je le disais les solution sont là mais elle dépasse mes connaissances.

    Je ne comprend pas le code que tu me donne donc du coup je suis incapables de finir mon code, sinon oui j'avais essayer (c.f post précedent) mais si erreur je me retrouvais sur le formulaire vide et il perdais le CSS.
    Donc comme le code je le comprenais pas vraiment je pouvais pas trouver le problème.

    J'ai eu l'occasion d'acheter le livre donc je parle plus haut, et il propose exactement se que je voulais.

    Car là au final je n'arrive jamais a faire marcher quoique se soit.

    Pourquoi empty est mauvais? donc je remplace par isset
    En fais j'ai repris le code d'origine, de plus vu mon niveau, sache que je n'ai pas écris ce code seul on m'as aidé.
    Après c'est pas que un problème de compréhension, mais je suis pas étudiant en informatique ou autre donc mes connaissance en synthax PHP sont très réduite donc quand je sais pas ou trouve pas je reviens a ce que j'avais a la base et qui marchais avant de vouloir ajouté le pré-remplissage des champs.

    En fait vu que je bloquai j'ai "remis a zéro" puis je suis reparti en plus simple avec se que tu vois.
    Mais là il devrai marché et pas me renvoyer a l'accueil

    Donc là sur le code actuel c'est quoi qui fais que je me retrouve sur l'accueil?

    Merci

  9. #49
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par NuDub Voir le message
    FoxLeRenard bonjours.
    Donc là sur le code actuel c'est quoi qui fais que je me retrouve sur l'accueil?
    Merci
    Impossible de te le dire avec ce que j'ais

    mais pour empty lit ça http://php.net/manual/fr/function.empty.php
    Pour le reste impossible de tester en réel puisque je n'ais pas tout !
    d'autre part tu n'ouvres pas ta session ?

  10. #50
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Pour le empty :
    Là sur le code actuel du formulaire c'est pas génant car seul sur le captcha il y a le empty.

    Donc pas de risque d'avoir des erreurs sauf si du coup je l'avais utilisé sur tous.
    (c.f le dernier code que j'ai mis en entier sur cette page)

    Là j'ai rajouté le session-start(); sur le formulaire mais vu que j'inclu le formulaire dans l'accueil (index) du coup je met le session-start sur l'index normalement.
    Bon là c'est mis donc OK.

    FoxLeRenard c'est toujours le même environnement c'est juste le formulaire que j'ai changé.du moins le PHP pour le traité.

    Mais le problème viens pas d'ailleurs que ce code PHP car tous marchais avant et j'y arrive pas que depuis je veux ajouté l'auto complétion des champs en cas d'erreur.

    Merci.

    PS : j'ai modifié le !empty par isset.

    Sinon pour faire les test je vais commenté toutes la partie vérif en Javascript sa m'évitera de l'éteindre.

    Voici le nouveau formulaire.php
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    <?php
    session_start();
    ///Vérification du captcha avec les paramètre suivant.
    if (isset($_POST['Envoie'])&& isset($_POST['vcaptcha']))
    	{
    		if ($_POST['vcaptcha']!==($_SESSION['captcha_control'])) //Si la chaine saisie par lutilisateur ne correspond pas Ã* celle stocké en session...
    		{
    			echo 'Le captcha que vous avez saisi n\'est pas correct !';//message si la saisie est fause
    			exit;//le script ne continue pas
    		}
    			elseif ($_POST['vcaptcha']==($_SESSION['captcha_control']));//sinon c'est OK on continue la suite du script
    			 {
    if (isset($_POST['Envoie'])&& isset($_POST['Nom'])&& trim($_POST['Nom'])!= '')$nom = ($_POST['Nom']);
    if (isset($_POST['Envoie'])&& isset($_POST['Prenom'])&& trim($_POST['Prenom'])!= '')$prenom = ($_POST['Prenom']);
    if (isset($_POST['Envoie'])&& isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])&& trim($_POST['Nom_du_groupe_ou_nom_d_artiste'])!= '')$artiste = ($_POST['Nom_du_groupe_ou_nom_d_artiste']);
    if (isset($_POST['Envoie'])&& isset($_POST['Mail'])&& trim($_POST['Mail'])!= '')$email = ($_POST['Mail']);
    if (isset($_POST['Envoie'])&& isset($_POST['Message'])&& trim($_POST['Message'])!= '')$message = ($_POST['Message']);
     
    			 /////Envoi du mail  avec PHPmailer
    //--------avec juste la condition qui cloture la section du mail---//
    	if(!$mail->Send()){ //Teste le return code de la fonction
           echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
    		}
    		echo("<center><br><br><br><h2 class='msgOK'>votre demande d'informations &agrave; &eacute;t&eacute; envoyer</h2><br><br><br><br><a href=/index.php>Cliquez ici pour revenir &agrave; l\'accueil</a></center>");
    	}
    	 }else {
    ?>
    <!--Javascript pour la verification des saisie dans le formulaire-->
    <!--////début du script JAVA-->
    <script type="text/javascript" language="Javascript" >
    <!--
    function verification()
    {
    	if(document.formulaire_informations.Nom.value == "") { //vérification du champs NOM
      alert("Veuillez entrer votre Nom svp");
      document.formulaire_informations.Nom.focus();
      return false;
     }
      else
     if(document.formulaire_informations.Prenom.value == "") { //vérification du champs PRENOM
       alert("Veuillez entrer votre Prenom svp");
       document.formulaire_informations.Prenom.focus();
       return false;
    }
        else
     if(document.formulaire_informations.Nom_du_groupe_ou_nom_d_artiste.value == "") { //vérification du champs NOM DU GROUPE
       alert("Veuillez entrer votre Nom de Groupe ou nom d'artiste svp");
       document.formulaire_informations.Nom_du_groupe_ou_nom_d_artiste.focus();
       return false;
    }
      else
     if(document.formulaire_informations.eMail.value.indexOf('@') == -1) { //vérification du champs eMAIL
       alert("Ce n'est pas une adresse mail, verifiez la svp");
       document.formulaire_informations.eMail.focus();
       return false;
     }
        else
       if(document.formulaire_informations.Message.value == "") { //vérification du champs MESSAGE
       alert("Veuillez entrer le texte de votre message svp");
       document.formulaire_informations.Message.focus();
       return false;
      }
    return true
    }
    //-->
    </script>
    <!--///fin du Script-->
    <!--Description du formulaire-->
      <h2 class="titre">Informations complementaires</h2>
      <p>Ce formulaire vous permet de nous faire part de vos demandes d'informations complémentaire.<br />
      </p>
      <!--Fin description du formulaire-->
      <!--Début du formulaire-->
    <form class="formulaire" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" name="formulaire_informations" onSubmit="return verification()">
      <!--//Champs pour les informations personnels-->
      <fieldset>
        <legend>Informations</legend>
        <table width="540" height="176" border="0">
          <tr>
            <td width="218"><label>Nom : </label></td>
            <td width="312"><input name="Nom" type="text" value="<?php echo (isset($_POST['Nom'])) ? htmlspecialchars($_POST['Nom']) : ''; ?>"/></td>
          </tr>
          <tr>
            <td><label>Prenom :</label></td>
            <td><input name="Prenom" type="text" value="<?php echo (isset($_POST['Prenom'])) ? htmlspecialchars($_POST['Prenom']) : ''; ?>" /></td>
          </tr>
          <tr>
            <td><label>Nom du groupe ou nom d'artiste :</label></td>
            <td><input name="Nom_du_groupe_ou_nom_d_artiste" type="text" value="<?php echo (isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])) ? htmlspecialchars($_POST['Nom_du_groupe_ou_nom_d_artiste']) : ''; ?>" /></td>
          </tr>
          <tr>
            <td><label>eMail :</label></td>
            <td><input name="Mail" type="text" value="<?php echo (isset($_POST['Mail'])) ? htmlspecialchars($_POST['Mail']) : ''; ?>" /></td>
          </tr>
          <tr>
            <td height="68" colspan="2"><label>Message :<br />
                <textarea name="Message" cols="30" rows="10" wrap="virtual" value=""><?php echo (isset($_POST['Message']))? htmlspecialchars($_POST['Message']): ''; ?></textarea>
              </label></td>
          </tr>
          <tr>
            <td height="68"><label for="captcha">
              <input name="vcaptcha" type="text"/>
            </label></td>
            <td height="68">Recopiez le mot :
              <script type="text/javascript">
    function captchaRefresh() {
         document.getElementById("captcha").src = 'includes/gene_captcha.inc.php?'+Math.floor(Math.random()*1000);
    }
              </script>
              <img src="includes/gene_captcha.inc.php" id="captcha" alt="captcha_informations" />
            <input type="button" onclick="captchaRefresh()" value="Actualiser" /></td>
          </tr>
        </table>
      </fieldset>
      <!--Bouton d'envoi et réinitialisé-->
      <input name="Reinitialise" type="reset" value="R&eacute;initialiser" />
      <input name="Envoie" type="submit" value="Envoyer" />
    </form>
    <?php 
    	}
    ?>
    <!--Fin du formulaire-->
    Pour rapel mon site fonctionne sur des pseudo frame.

    FoxLeRenard ou les autre si il manque un truc pour comprendre dites le moi

    Merci

  11. #51
    FoxLeRenard
    Invité(e)
    Par défaut
    FoxLeRenard c'est toujours le même environnement c'est juste le formulaire que j'ai changé.du moins le PHP pour le traité.
    Bien sur que non, ce qui est certain c'est que formulaire4 et traitement4 marchaient !!

    Aprés tu as tout cassé ... désolé

    Quand tu auras tout remis a plat, en te basant sur ce que je te donnais comme logique:

    Faire 1000 formulaires et leurs traitements c'est aussi simple que 1 seul ! aprés il suffit d'un aiguillage de choix , non ?

    Maintenant ici nous ne pouvons prendre en main une application compléte.
    nous répondons a une question, puis a une autre ...

  12. #52
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Aprés tu as tout cassé ... désolé
    J'ai fais du recopier pourtant mais bon après effectivement j'ai remis a zéros.

    La raison est que là sa dépassait mes connaissance et donc je me suis retrouver a pas savoir pourquoi il voulais pas marcher chez moi.

    donc après je tombe sur ce livre "Guide de survie PHP5 et MySQL5"

    D'où le code actuel déjà plus abordable mais là encore sa veut pas fonctionner correctement.

    Je le répète je disais pas que t'a proposition n'est pas bonne ou autre.

    Mais chez moi sa n'as pas pris donc pouvant rien faire j'essaye autrement.

    Quand tu auras tout remis a plat, en te basant sur ce que je te donnais comme logique:

    Faire 1000 formulaires et leurs traitements c'est aussi simple que 1 seul !
    En fait en soit je comprend mais après le traduire en langage PHP c'est autre chose, encore un fois je suis pas étudiant en informatique, ni programmeur, je suis ingé son de plus j'ai découvert PHP y a peu donc c'est encore du chinois.

    Mais bon je sais que dans mon domaine j'ai déjà eu des réponse de ce genre envers des débutant en son, donc malgré tous je vois ce que tu veut dire pour le PHP.
    Et j'en doute pas.

    Mais plus facile à dire que à faire.

    aprés il suffit d'un aiguillage de choix , non ?
    Là pas compris.

    Bon se week end va être calme donc se que je vais testé

    1) lui je le garde de côté car faut que je trouve pourquoi il marche pas, car vu le pédigrée des gars qui on fais ce code(le livre) il doit pas être mauvais, mais faut que je trouve le hic de ma syntaxe car là je saisi pourtant ce code

    d'où l'écart entre comprendre et traduire en PHP.

    2) je vais dupliqué le formulaire et recopier de nouveau ton code mais je te ment pas en te disant que chez moi lors de la validation avec une erreur volontaire il me redirigeais sur le formulaire mais sans sans le CSS et non inclu dans l'index.php comme il devrai l'être.

    Donc il faudra que tu puisse m'aider car sinon je vais me retrouvé au même endroit.

    Merci de l'aide.

    PS : @FoxLeRenard : si tu veut voire l'intégration de ton code que j'avais fait regarde les post précédent car ton avis me sera utile car en toutes logique je vais le recopier pareil donc sinon je vais encore avoir un grand moment de solitude.
    Donc si tu repère des erreur sa m'aidera beaucoup de pas les refaire.
    Merci à toi.

    [HUMOUR]
    Mine de rien je vais réussir a être membre du club avec un problème.
    Sa serai au moins un truc de réussis.

    [/humour]

  13. #53
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Je fais un nouveau post car le précédent est déjà long et date d'hier.

    Là, j'ai repris ce que l'on avais vu FoxLeRenard, j'ai tous repris en faisant plus gaffe car j'avais oublié d'utiliser les echo dans le form.

    Et j'ai aussi rectifié des valeur.

    Donc sa devrais marché mais avant d'y aller je voudrai juste clarifié des petites choses qui malgré que je comprenne en soit le principe je doute quand même.

    En fait pour la gestion des erreur du moins le text a afficher, j'utilise les session, et en fait j'afficherai le texte dans le Legend du form en rouge ou un truc du genre.

    Par contre là où je voudrai un avis c'est pour les cas de réussite.

    En fait je voudrai savoir comment on met en place un système comme quand on s'identifie sur le forum(ici).

    Je m'explique pour mon formulaire :

    La personne le rempli et tous se passe bien, donc, je voudrais que sa affiche une page avec un message disant que OK blablabla.
    Puis après automatiquement le redirigé sur l'accueil.

    Merci, si une explication n'est pas clair dites le moi.

  14. #54
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par NuDub Voir le message
    En fait je voudrai savoir comment on met en place un système comme quand on s'identifie sur le forum(ici).

    Je m'explique pour mon formulaire :

    La personne le rempli et tous se passe bien, donc, je voudrais que sa affiche une page avec un message disant que OK blablabla.
    Puis après automatiquement le redirigé sur l'accueil.
    Bonjour,

    Bis repetitas

    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
    if condition 1 OK
    { 
          if condition 1/a
          {
          // Si condion 1/a OK 
          //Exécution X
          // Qui peut comprendre une ou plusieurs actions  
          }
         else 
         {
         // Si condion 1/a PAS OK 
         // Exécution Y
         // Qui peut comprendre une ou plusieurs actions 
         }  
    } 
    else
    {
    // Si condition 1 PAS OK 
    // Exécution 2
    // Qui peut comprendre une ou plusieurs actions 
     
    }
    Ce n'est pas compliqué en soi et c'est le b.a.ba, il suffit de comprendre comment fonctionnent les conditions.
    Et franchement, il ne faut pas avoir une tournure d'esprit particuliére.

    Maintenant, côté exécution ou action, selon, tu y mets ce que tu veux.
    - ou 1 include
    - Ou une image
    - Ou un message texte
    - Ou un message javascript
    - Ou un text avec bouton de redirection
    - Ou une redirection tout court
    - Ou une fonction de calcul
    - Ou une requête
    - Ou même plusieurs actions simultannées, ou ordonnées suivant la nature.
    Et j'en passe.

    Ben je sais plus quoi te dire.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  15. #55
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Ce n'est pas compliqué en soi et c'est le b.a.ba, il suffit de comprendre comment fonctionnent les conditions.
    Et franchement, il ne faut pas avoir une tournure d'esprit particuliére.
    La préparation en langage humain est aisé effectivement, c'est la transcription en PHP qui est moins évidente pour des novices.

    Exemple :
    Ecrire dans la BDD machin dans la table Bidule etc..., en langage humain c'est OK.
    Mais a mettre en PHP c'est une autre pair de manche.
    C'est du vécu!!!

    Bah ici on dirais une redirection sur :

    un message disant que l'on est indentifié .

    puis là on dirais un genre de sleep();

    Puis la redirection.

    En fait, c'est le petit bloquage de la page qui confirme l'identification qui me pose des question.

    Est-ce un sleep()?

    Je continue de voir si je rouve le principe de :

    Redirection -> message OK pendant n secondes-> Redirection.

    Merci de votre aide

  16. #56
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Citation Envoyé par NuDub Voir le message
    Est-ce un sleep()?

    Je continue de voir si je rouve le principe de :

    Redirection -> message OK pendant n secondes-> Redirection.

    Merci de votre aide
    Non, ce n'est pas un sleep, pour les redirections, il y a 3 méthodes.

    - Javascript, on évite généralement à moins de vouloir passer dans l'url des paramètres accessibles uniquement par le js, mais une alternative au js doit de toute façon être mis en place.
    - HTML (meta), la plus simple et plus courante.
    - HTTP, redirection effectuée côté serveur.

    Regarde le code source des pages qui effectuent des redirections

  17. #57
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Xunil, merci de tes réponses.

    Pour le JS, c'est effectivement se que j'avais pus lire lors de recherche.

    Je vais donc voir les sources des pages.

    Pour la redirection HTTP, j'y pensais, mais elle est direct donc le visiteur n'a pas le temps de lire, puis du coup on peut rien affiché d'ailleurs.

    Mais je me trompe peut êtres.

    Je continue de chercher comment c'est mis en place.

    Un sujet a été ouvert pour ce que je cherche, voici un des élément donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php header ("Refresh: 5;URL=page_suivante.php"); ?>
    Donc j'attends de voir la réponse pour le "comment y mettre du texte ?".

    Un mise en tamporisation avec ob_start etc... ?

    Merci

  18. #58
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Bonjours,

    Bon déjà une petite avancée, si je fais une erreur je retourne sur le formulaire remplie de ce qui y étaient.

    @FoxLeRenard : Donc en fait dans le Header, il faut que je mette l'URL complète sinon j'ai plus la mise en page, juste le formulaire brut. Je pense que c'est dus au système de pseudo-frame.

    Donc là il me reste a mettre en place l'affichage du message d'erreur sur le formulaire.

    Et après il me reste à mettre en place la redirection en cas de réussite comme lors du Login ici sur Developpez.com.

    Donc voilà reste ces deux petit point et c'est bon, si vous avez des idées sur la redirection, un exemple.

    Merci de votre aide.

  19. #59
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par NuDub Voir le message
    Donc voilà reste ces deux petit point et c'est bon, si vous avez des idées sur la redirection, un exemple.
    On a déjà fait des suggestions dans cette file.
    Pis Google, un ami sympa.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  20. #60
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 39
    Points
    39
    Par défaut
    Merci Alain31tl,

    Donc la redirection "final", en cas de réussite après recherche et test, se fait ainsi:

    <?php
    header('refresh: 5; url=/'); #Exemple avec retour a la base du site.
    echo 'Message de notre choix';

    Donc maintenant reste plus qu'a faire pareil pour les 3 autres formulaire, j'ai de quoi m'occuper car lui c'était le plus court et basique, les autres sont chargé et la y a de tous, Chekbox, Liste, boutons radio,etc...

    Merci a vous pour votre patience et votre aide ainsi que le temps que vous m'avez accordé.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [Club Internet] comment mettre un .htaccess sur mon site ?
    Par cyberdevelopment dans le forum Autres hébergeurs
    Réponses: 8
    Dernier message: 27/07/2006, 17h49
  2. Persistance de formulaire sans session
    Par supermanu dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/07/2006, 14h30
  3. Réponses: 6
    Dernier message: 31/01/2006, 16h55
  4. Réponses: 4
    Dernier message: 01/10/2005, 17h59
  5. [struts] Destruction bean formulaire de session
    Par k4eve dans le forum Struts 1
    Réponses: 4
    Dernier message: 06/05/2004, 17h34

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