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. #21
    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 merci beaucoup de ton aide,

    Donc j'ai fais se que tu m'as indiqué,
    Par contre dans formulaire.php je n'ai pas de Doctype car en fait c'est contact.php qui est inclue dans l'index.php ensuite donc sur contact.php j'ai un script qui me fait une liste déroulante de routing et là on choisi un des formulaire.

    Donc du coup puis-je garder ce code mais juste sans mettre le Doctype ?
    Y il y aura t-il un problème ou non ?

    ensuite j'ai pas compris ce passage :

    [...] mais fait attention tu n'affiches pas de echo si il y a encore des header a lancer !!
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
       //echo 'Le captcha que vous avez saisi n\'est pas correct !';
       header('Location: formulaire4.php');
       exit;
    ?>
    Là je comprend pas du tout, car là de ce que je crois comprendre, c'est je mets pas d'echo.

    Mais comment je peux indiqué l'erreur avant de renvoyer la personne sur le formulaire?

    Il y aura des petits détails de gestions d'erreurs[...]
    C'est à dire, je dois faire quoi ?

    Merci de ton aide.

  2. #22
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par NuDub Voir le message
    FoxLeRenard merci beaucoup de ton aide,
    j'ai pas compris ce passage :
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
       //echo 'Le captcha que vous avez saisi n\'est pas correct !';
       header('Location: formulaire4.php');
       exit;
    ?>
    Là je comprend pas du tout, car là de ce que je crois comprendre, c'est je mets pas d'echo.
    Mais comment je peux indiqué l'erreur avant de renvoyer la personne sur le formulaire?
    Merci de ton aide.
    Dans formulaire ET traitement
    il faut mettre en tête des deux mais aprés les POST et SESSION existants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (!isset($_SESSION['err'])) {$_SESSION['err']="";$err="";}
         else {$err=$_SESSION['err'];}
    Puis je prends dans traitement tu mets par exemple

    AU LIEU DE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
       //echo 'Le captcha que vous avez saisi n\'est pas correct !';
       header('Location: formulaire4.php');
       exit;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       $_SESSION['err']="Le captcha que vous avez saisi n\' est pas correct !";
       header('Location: formulaire4.php');
       exit;
    Et tout simplement dans formulaire
    la ou tu veux il faut faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?PHP
    echo ("ATTENTION ".$err."<br />");
    $_SESSION['err']="";$err="";
    ?>
    Pour le DOCTYPE
    je profite pour te redire mais tu ne l'as pas encore compris
    et ça t'aidera quoi que tu fasse plus tard en PHP

    La seule chose qui compte est le HTML envoyé au visiteur
    ors il est fait de tout les echo et balises directes (hors PHP)
    DANS l'ordre comme si il n'y avait AUCUN include mais TOUT mis bout a bout dans l'ordre des includes dans un seul PHP !!



    Attention si tu vires mon INCLUDE et HTML... c'est eux que tu dois avoir a la place du tiens si non les centrages seront faux !

  3. #23
    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
    Fox Le Renard merci de ton aide, mais je suis débutant et là je suis encore plus perdu.

    Je veux dire j'ai fais ce que tu m'as dit mais je comprend plus où mettre quoi et où exactement.

    Maintenant là par exemple pour simulé une erreur je choisi de faire une erreur au captcha ensuite je valide et là il m'affiche le formulaire sans le minimum de mise en page que j'avais, et le formulaire est vide.
    Ensuite je fais précédent et je retourne sur le formulaire avec la mise en page mais toujours pas pré-remplis.

    Alors que précédement j'avais mon messsage d'erreur qui marchais et par contre j'avais juste pas le formulaire qui se remplissait automatiquement.

    Merci de ton aide, je suis totalement vraiment perdu car je comprend plus mon code .

    Voici actuellement ce que j'ai pour traitement.php (sauf la partie mail remplacé par un commentaire) :
    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
     
    <?php 
    //On démarre la session
    session_start();
    //le captcha
    if (isset($_POST['vcaptcha'])) $vcaptcha=$_POST['vcaptcha'];
    	else $vcaptcha="";
    if (!isset($_SESSION['captcha_control'])) {$_SESSION['captcha_control']=1;$captcha_control=1;}
    	else {$captcha_control=$_SESSION['captcha_control'];}
     
    if ($vcaptcha!="")
    {
    	if(isset($_POST['Nom'])) $nom=$_POST['Nom'];
    	else $nom="";
    	$_SESSION['nom']=$nom; 
    	if(isset($_POST['Prenom'])) $prenom=$_POST['Prenom'];
    	else $prenom="";
    	$_SESSION['prenom']=$prenom;
    	if(isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])) $artiste=$_POST['Nom_du_groupe_ou_nom_d_artiste'];
    	else $artiste="";
    	$_SESSION['artiste']=$artiste;
    	if(isset($_POST['Mail'])) $email=$_POST['Mail'];
    	else $email="";
    	$_SESSION['email']=$email;
    	if(isset($_POST['Message'])) $message=(htmlentities($_POST['Message']));
    	else $message="";
    	$_SESSION['message']=$message;
    }
    	else { header('Location: formulaire_informations.php');exit;}
     
    		if ($vcaptcha!=$captcha_control)
    		{
    			$_SESSION['err']='Le captcha que vous avez saisi n\'est pas correct !';
    			header('Location: formulaire_informations.php');
    			exit;
    		}
    			else//sinon c'est OK on continue la suite du script
    			{	
    /////-----Partie Mail + Message de réussite affiché par un echo---/////
    		}
                       				if (!isset($_SESSION['err'])) {$_SESSION['err']="";$err="";}
    					else {$err=$_SESSION['err'];}	
    			}
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ITB.Audio/envoi</title>
    <link href="/itb.audio/style/stylemsgform.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    </body>
    </html>
    Là mon Doctype ne sert arien dans traitement.php car de plus dans index.php il y ai déjà donc y a conflit puisque en plus la balise title est généré suivant la page.

    ensuite formulaire.php (sans session start car il me dit que ma session est déjà ouverte)

    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
    <?php 
    if (!isset($_SESSION['nom'])) {$_SESSION['nom']="";$nom="";}
    	else {$nom=$_SESSION['nom'];}
    if (!isset($_SESSION['prenom'])) {$_SESSION['prenom']="";$prenom="";}
    	else {$prenom=$_SESSION['prenom'];}
    if (!isset($_SESSION['artiste'])) {$_SESSION['artiste']="";$artiste="";}
    	else {$artiste=$_SESSION['artiste'];}
    if (!isset($_SESSION['email'])) {$_SESSION['email']="";$email="";}
    	else {$email=$_SESSION['email'];}
    if (!isset($_SESSION['message'])) {$_SESSION['message']="";$message="";}
    	else {$message=$_SESSION['message'];}
    if (!isset($_SESSION['err'])) {$_SESSION['err']="";$err="";}
    	else {$err=$_SESSION['err'];}	
     
    ?>
    <!--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="includes/envoi_infos.php" method="post" name="formulaire_informations">
      <!--//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" /></td>
          </tr>
          <tr>
            <td><label>Prenom :</label></td>
            <td><input name="Prenom" type="text" /></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" /></td>
          </tr>
          <tr>
            <td><label>eMail :</label></td>
            <td><input name="Mail" type="text" /></td>
          </tr>
          <tr>
            <td height="68" colspan="2"><label>Message :<br />
                <textarea name="Message" cols="30" rows="10" wrap="virtual">&nbsp;</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>
    <!--Fin du formulaire-->
    Voilà, je te met le code qui sera une meilleur explication que mes mot merci beaucoup de ton aide

  4. #24
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par NuDub Voir le message
    Fox Le Renard merci de ton aide, mais je suis débutant et là je suis encore plus perdu.
    Tu vois le temps passé sut ton probléme, c' est normal, et ça t'a fait avancer ...
    Mais aprés tout ça dire qu'en fait c'était pour mettre ailleur dans un autre contexte et que de ce fait ça ne marche plus, que veux tu que nous fassions , et c'est un peut vexant

    Alors a l'avenir quand tu posera une question, donne bien tes sources !

  5. #25
    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
    Quand tu parles de contexte tu parles de mon niveau ou de l'utilisation du code.

    J'ai effectivement dus oublier de mettre mon niveau, mais je croyais l'avoir mis.

    Car sinon pour le code lui le contexte n'as point changer.

    Oui je t'accorde que cela fait un moment que j'ai mon soucis, mais j'ai a côté une belle charge de travail ce qui en général me rend plutôt dispo en journée que en fin de journée.

    Pour en revenir a mon niveau qui est débutant, de plus pourtant je lis les tutos et FAQ mais n'étant pas informaticiens de métiers, même après lecture, la mise en application n'est pas simple.

    car la différence entre un exemple et un cas concret se fait ressentir.

    Sinon sauf mauvaise compréhension de tes explications j'ai fais ce que tu m'as dis mais avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (!isset($_SESSION['err'])) {$_SESSION['err']="";$err="";}
    					else {$err=$_SESSION['err'];}
    Je ne sais pas vraiment où est il préférable de le mettre.
    Mais après tout ça dire qu'en fait c'était pour mettre ailleurs dans un autre contexte et que de ce fait ça ne marche plus, que veux tu que nous fassions , et c'est un peut vexant
    A vrai dire le contexte est le même depuis le début.

    C'est à dire :

    Le site s'articule sur index.php (toutes les pages du site viennent s'inclure dans index.php).

    Parmi mes page, il y a une page contact.php qui vient donc s'inclure dans index.php.

    Cette dernière as une liste déroulante de routage où le visiteur y sélectionne le formulaire qu'il souhaite remplir, et ce, parmi 4.

    Chaque formulaire.php dés validation, fais appel a un fichier, ce fichier est traitement.php.

    En faite chaque formulaire.php a son traitement.php.

    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é.

    Voilà le résumé.

    En fait c'est ce que j'explique depuis le premier post.

    Mais là je viens de comprendre que en fait tu as avais compris que si il y a une erreur alors on redirige directement le visiteur sur le formulaire et mettre le message d'erreur sur la page du formulaire.

    Pour être honnête là les deux méthode étant sur le fond pareil je prend celle qui marche.
    Je veux dire je n'ai pas d'attachement a la méthode précédente si ce n'est que je maitrise pas assez pour faire des changement dans un code déjà bien avancé, du moins pas avec une grande facilité.

    Mais en aucun cas je n'ais changé d'idée en cours et du moins si je l'ai fais pensé cela était involontaire de ma pars.

    [EDIT]
    Par doute j'ai relus mon premier post, et c'est bien ce que j'ai expliquez, bien sur techniquement les terme sont pas précis, sinon le code que je donne c'est le même que au départ excèpté que c'est avec les modifs que tu m'as proposé, ce n'est pas un autre code. Le contexte n'as pas changé.

    Bien entendu j'accepte de me remettre en question, mais indique moi où j'ai "involontairement" introduis un nouveau contexte.
    [/EDIT]

    Merci de ton aide, accepte tu de continué de m'aider ?

  6. #26
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,
    Nous ne jugeons jamais le niveau de ceux qui posent des questions,
    ce que j'ais écris, c'est que toute la démarche entre toi et moi était basée sur ce qui a amené a un ensemble qui fonctionnait,
    alors tu écris


    FoxLeRenard merci beaucoup de ton aide,

    Donc j'ai fais se que tu m'as indiqué,
    Par contre dans formulaire.php je n'ai pas de Doctype car en fait c'est contact.php qui est inclue dans l'index.php ensuite donc sur contact.php j'ai un script qui me fait une liste déroulante de routing et là on choisi un des formulaire.

    Donc du coup puis-je garder ce code mais juste sans mettre le Doctype ?
    Y il y aura t-il un problème ou non ?

    Ca te parait peut important, mais bien sur que si ...


    Merci de ton aide, accepte tu de continué de m'aider ?
    Mille fois OUI

  7. #27
    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 te remercie d'accepter de continué a m'aider.

    Donc du coup j'ai laissé les code exposé sur le dernier post, et je suis retourné a la recherche de pourquoi j'avais pas le résultat escompté.

    Il semblerai qu'ils ne soit pas possible, une fois validé, et que le message d'erreur apparait, de faire un précédent pour retourné sur le formulaire avec ce derniers pré-remplis des infos déjà rentrée par le visiteur.

    Du moins avec un système a deux fichier distinct, soit formulaire.php, traitement.php.

    De plus des changement seari a faire dans mon formulaire lui-même.

    Je veux dire ajout de php dans les balise du formulaire pour permettre un ré affichage des donnée.

    [EDIT]
    Sache, que je reste ouvert à toutes améliorations possible amenant aux résultat que je recherche, la seule chose que je souhaite laissé en place dans mon système de formulaire est :

    1. La page contact.php qui est incluse dans index.php
    2. Le menu de routage sur contact.php pour l'accès au différents formulaires
    3. Et la vérifications de champs en Javascript déjà en place sur les formulaires

    Sinon le faite d'avoir le traitement et le formulaire séparé je n'y tiens pas plus que ça donc je suis ok pour rapatrier tous sur le formulaire.
    [/EDIT]

    Qu'en pense-tu FoxLeRenard ?

    Et encore merci de ton aide.

  8. #28
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par NuDub Voir le message
    Je te remercie d'accepter de continué a m'aider.
    Donc du coup j'ai laissé les code exposé sur le dernier post, et je suis retourné a la recherche de pourquoi j'avais pas le résultat escompté.

    Il semblerai qu'ils ne soit pas possible, une fois validé, et que le message d'erreur apparait, de faire un précédent pour retourné sur le formulaire avec ce derniers pré-remplis des infos déjà rentrée par le visiteur.
    Soyons clair sur ce point trés important, dans les sites web (surtout sécurisés) la seule navigation possible es celle des boutons et liens des pages.

    Tout emploie de recul avec son navigateur, est une abération, nous savons combatre cela mais c'est trés complexe

    Pareil pour le F5 (rafraichissement)

    celui qui écris un site essais au mieux d'éviter cela, mais c'est presque mission impossible !


    Citation Envoyé par NuDub Voir le message
    Du moins avec un système a deux fichier distinct, soit formulaire.php, traitement.php.

    De plus des changement serait a faire dans mon formulaire lui-même.

    Je veux dire ajout de php dans les balise du formulaire pour permettre un ré affichage des donnée.
    Mais le PHP generant des valeurs dans le formulaire c'est ce que j'avais fait


    Citation Envoyé par NuDub Voir le message
    la seule chose que je souhaite laissé en place dans mon système de formulaire est :

    1. La page contact.php qui est incluse dans index.php
    2. Le menu de routage sur contact.php pour l'accès au différents formulaires
    3. Et la vérifications de champs en Javascript déjà en place sur les formulaires

    Sinon le faite d'avoir le traitement et le formulaire séparé je n'y tiens pas plus que ça donc je suis ok pour rapatrier tous sur le formulaire.
    Qu'en pense-tu FoxLeRenard ?
    Ce qui se passe avant je m'en moque et je vais réexpliquer cela:

    un PHP et 1000 includes c'est pareil a un seul PHP

    un PHP et 1000 includes ne fait que générer un HTML lequel éventuellement a un FORM de saisi l'envoyant vers un OU DES appels a tel ou tel page PHP

    Donc ta structure on s'en moque pour ton probléme du jour,

    Si tu comprends ça tu as tout compris sur l'architecture client /serveur

    Donc nous on peut trés bien rester dans le shémat que je proposais, d'autant que si dans

    le traitement et le formulaire tu as des choix avec retour vers ton index.php
    tu y retrouvera en prime tes valeurs de session

  9. #29
    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
    L'histoire des include ça pourtant j'ai compris que au final on a un fichier.

    Ensuite j'ai mis en place ce que tu m'as dis, j'ai même remis les nouveau code je veux dire corrigé avec ce que tu m'as proposer.

    Mais j'ai pas le résultat escompté, c'est ça que j'expliquais dans mon post qui pour toi était un changement de context.

    Donc actuellement quelle erreur ais-je fais en recopiant et complétant tes propositions.

    Voilà en une phrase ce que je disais il y a quelque post.
    Mais le PHP générant des valeurs dans le formulaire c'est ce que j'avais fait
    Je dis pas le contraire ou autre chose, j'ai remis ton code dans le miens .

    Mais surement une erreur de ma part lors de la réécriture, mais quand je fais ensuite un test en simulant une erreur, tel pourrai le faire un visiteur.

    Je valide et là j'atterris sur mon formulaire vide et sans CSS.

    Voilà, ensuite après je continue aussi de cherché au mieux de mon côté, car je cherche aussi a bien comprendre.

    Mes deux avec tes proposition ajouté sont plus haut mais je peux les reposte de nouveau.

    Merci de ton aide

  10. #30
    FoxLeRenard
    Invité(e)
    Par défaut
    Bon je comprends que tu as tout bien fait, mais un grain de sable fait tout coincer, comment le trouver sans avoir tOUT les PHP en jeux y conpris les includes et CSS.

    Bon je continues a chercher

  11. #31
    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 beaucoup Fox Le Renard,

    En fait actuellement les valeurs des variables doivent bien être en session, mais comment elle peuvent se remettre dans la bonne cases.

    Exemple :

    Une personne rempli le formulaire et fait une erreur quelque pars on va dire le captcha, car si il y a un oubli il y a le javascript, et si pas de Javascript a ON chez le visiteur alors là même principe que avec le captcha.

    Donc il valide et là le traitement affiche un messsage d'erreur.

    Donc OK les valeur son en session mais ensuite que

    1. On redirige le visiteur sur le formulaire avec un "Header"
    2. Ou il doit faire précédent pour revenir au formulaire.


    Comment les valeurs savent où elle doivent se remettre, car là hormis le problème de la redirection sur le formulaire sans CSS et vide, je me dis que c'est là que je dois peut être ajouté un truc pour que je dise tel valeur de tel variable doit se remettre dans tel champs ou tel valeur de tel variable doit checké tel chexbox etc avec les liste déroulantes.

    Voilà en fait pourquoi je pensai devoir aussi retouché le formulaire.

    Merci

  12. #32
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par NuDub Voir le message
    Merci beaucoup Fox Le Renard,.......
    J' ais les éléments et je regardes ça ! pfffff faudra du temps pour relire depuis le début


    ATTENTION un point est a changé il faut pas le isnum !!
    remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_GET["page"])) $page=trim($_GET["page"]);    else $page="accueil";
    Mais de toute façon l'index est a revoir il faut même commencer par ça
    je regardes ça demain mais il faut utiliser uniquement $page

    Plus de GET ailleur et pas d'array de GET !!!

  13. #33
    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 array en fait c'est pour dire les pages du site et comme ça si on met une fausse page bah là on peut rien faire car les page doivent être celle de l'array et pour le titre c'est pour le génrer suivant la page appelé.

    Après je vais faire de l'URL rewriting pour changer les URL's.

    Le système des array venait d'un tutoriel pour sécurisé les includes.

    Merci de ton aide, et je regarde cette ligne dont tu me parle.

  14. #34
    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
    J'ai vu ici dans la F.A.C ou les cours de Developpez.com une explication pour pré§remplir un formulaire avec les données entrez par l'utilisateur.

    Pour résumez ce que je souhaite mettre en place :

    Le visiteur rempli un formulaire puis valide donc le fichier traite le formulaire et il y a une erreur donc soit automatiquement ou avec un lien on le redirige sur le formulaire mais avec les infos qui a bien rempli.

    Donc dans ce tutos il expliquai qu'il fallait avoir le traitement et le formulaire sur la même page (script).

    Mais si on utilise les SESSION pourquoi est il obligatoire d'avoir le formulaire et son traitement sur la même page.
    Là ce point je ne comprend pas trop.

    Voila mes petite avancé.

    Donc sur ça j'ai compris que pour ré-afficher les données il fallais mettre du PHP dans le value des champs du formulaire.

    Ce que j'avais fais mais j'avais un Parse error donc il faut que je regarde de nouveau car sa voudrai dire que j'ai oublié un ";"

    Quand je serais de retour sur mon windows je mettrai le code.

    Là différence du tutos est que pour le moment j'ai gardé le formulaire et le traitement en séparé.

    Si vous avez des idées a m'apporté pour cette mise en place n'hésité pas, dans les post précédent j'explique la structure de mon site.

    Merci beaucoup de votre aide.

  15. #35
    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
    Je ne comprend pas pourquoi vouloir à tout prix séparer traitement et affichage et faire transiter des valeurs post temporaires en variables de sessions , d'autant que tu peux très bien faire un include de la page faisant le traitement dans la page contenant le formulaire.

    Si le but est simplement de faire un lien de retour en cas d'erreur de saisies de l'utilisateur, c'est un peu absurde, j'avoue ne pas bien comprendre le but de tout ça.

    Toujours est-il qu'une session se transmettant de page en page, non, tu n'as pas besoin de faire le tout en une même page.

    Déclaration de tes variables de session dans la page du formulaire (pour éviter le isset à chaque champ)
    session[form] = array(x=>null, y=>null)
    De là, il suffit de mettre la valeur dans le value des balises, ou autres pour les radios, checkbox, etc...

    Page de traitement :
    Si champ x == ok
    session[form][x] = post[x]
    Si champ y == ok
    session[form][y] = post[y]
    Si tout est ok
    traitement final et suppression de session[form]

    Pas plus compliqué.

  16. #36
    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.

    Si le but est simplement de faire un lien de retour en cas d'erreur de saisies de l'utilisateur, c'est un peu absurde, j'avoue ne pas bien comprendre le but de tout ça.
    Sur ce point il y a 3 méthodes, soit :

    1. On affiche un message en cas d'erreur, puis on laisse le visiteur faire précédent pour retourné sur le formulaire.
    2. On affiche le message d'erreur avec un lien pour revenir sur le formulaire.
    3. On utilise un header pour le remettre directement sur le formulaire.


    Je n'ai aucune préférence, pour ce point.

    Pourtant malgré que je répété du mieux que je peut ce que je veux, tu n'as pas saisie (le prend pas mal) le point qui me bloque.

    Moi là ce que je veux mettre en place c'est de pouvoir pré-remplir le formulaire en cas d'erreur, erreur qui sera trouver lors du traitement, qui a lieu après validation du Formulaire.

    Là j'ai fais trois ligne mais je peux faire en 1.

    Je vais regarder ce que tu me propose.

    Et pour pré-remplir le value avec ce qui avais été mis je fais dans mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    value=" '.$_SESSION['valeur'].' "
     
    ou
     
    value=" '.$_POST['valeur'].' "
     
    ou comme le formulaire est en HTML et non php
     
    <?php echo 'value='.$_POST/SESSION['valeur'].' ';?>
    Sinon avec le code que tu propose serais t-il possible que tu me montre pour une valeur quelle synthax dois-je écrire pour :

    le "value" d'un champs du formulaire.

    Car là je suis plus trop, si je dois utilisé POST ou SESSION et surtout la synthax.

    Merci beaucoup Xunil

    PS : le 2ème résumé est écris gros, non pas parce que je me sent incompris mais pour qu'il soit visible au premier coup d'oeil.

    Là je suis sur que l'on va lire ces ligne et moi y compris en voyant je verrai si vraiment j'ai mal expliqué ou pas.

  17. #37
    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
    Tu ne m'as manifestement pas compris lorsque je te dis que l'absurdité de ton script est d'afficher le message d'erreur ailleurs que sur la page de ton formulaire.

    Teste sur différent site en provoquant sciemment une erreur de saisie et tu t'apercevras que les messages d'erreurs sont affichés sur la même page que le formulaire.

    La méthode 1 n'est pas du tout envisageable, c'est à toi d'orienter l'utilisateur.

    C'est ta variable de session que tu dois mettre dans le value et avec un echo bien sûr.

  18. #38
    FoxLeRenard
    Invité(e)
    Par défaut
    Suis les conseils que tu reçois, en fait ce qui était contruit peux se résumer ainsi:
    Pas besoins d'écrire en énorme, juste tu as mis dans des valeurs de session,

    1) tout les POST de tes saisies
    2) le/les messages d'erreur.

    Ce la signifie comme je l'avais expliqué, que tu peux revenir a la saisie
    1) en préremplissant les zones (puisque tu les as en valeur session)
    2) affocher le message d'erreur sil exist donc C 'est ce que t'explique Xunil

  19. #39
    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
    Donc OK je vais m'atteler a faire ça.

    Donc en 1er je vais sois inclure mon traitement.php sois le mettre directement au dessus du formulaire.

    Mise ensession des POST y compris le message d'erreur.

    Ensuite un echo dans les value pour pré-remplir le formulaire avec la valeur de session qui va avec lors de la redirection en cas d'erreur.

    Ok, je vais bien reprendre tous ça calmement, et je vous tiens au courant des évènement.

    Merci a tous les deux de votre aide.

  20. #40
    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
    Bon là je commence a revoir mon code.

    Dinc dans le formulaire j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $_SESSION['form']= array(nom=>NULL, prenom=>NULL, artiste=>NULL, email=>NULL, message=>NULL, err=>NULL);
    ?>
    Mais je comprend pas un truc, pour :

    si champs X == OK

    en php sa donne quoi, car je débute et sa me parle pas du tous du moins je pense a :

    Le OK je le traduis comment par rapport a tous ce que vous m'expliqué.

    Voilà merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 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