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 :

Session formulaires sans login


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut Session formulaires sans login
    Bonjour,

    je cherche la solution idéale pour transmettre des données de formulaires d'une page à une autre.

    Sur mon site, j'ai X pages et sur ces pages, j'ai 3 formulaies, placés sur 3 pages différentes. On passe d'un formulaire à un autre par un simple lien 'page suivante' jusqu'au formukaire final avec le bouton 'Envoyé' Mais les infos des formulaires précédent ne sont pas transmisent.
    Pour chaque page, j'utilise la fonction suivantes:

    <?php
    session_start();
    ?>
    Placé en tête de script avant toute instruction ou code.

    Ceci devrait conserver toute données sur le serveur?
    Peut-être ai-je oublieé certaines choses!!

    Mes variables passe de page 1a la 2 mais pas de la 2 à la 3 et de la 3 a la 4 5em ètape loger l'utilisateur.

    J'ai essayé avec ceci a la page 3 mais rien ne passe.
    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
    <?php 
     
    session_start();
    $id = $_SESSION['id'];
    $civilite = $_SESSION['civilite'];
    $nom = $_SESSION['nom'];
    $prenom = $_SESSION['prenom'];
    $adresse1 = $_SESSION['adresse1'];
    $adresse2 = $_SESSION['adresse2'];
    $code_postal = $_SESSION['code_postal'];
    $ville = $_SESSION['ville'];
    $pays = $_SESSION['pays'];
    $email = $_SESSION['email'];
    $email_confirm = $_SESSION['email_confirm'];
    $login = $_SESSION['login'];
    $pass = $_SESSION['pass'];
    $pass_confirm = $_SESSION['pass_confirm'];
     
     
    //print("<center>Bonjour $civilite $nom $prenom</center>");
    ?>
    Formulaire page 2

    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
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
           <form action="inscription4-5.php" action="envoyer" method='post'>
        <table align="center" border="1" style="width: auto">
          <tbody>
            <tr>
              <td>Civilité<br />
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="text" name="civilite" size="30" maxlength="30" value="<?php echo $CIVILITE; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Nom<br />
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="text" name="nom" size="30" maxlength="30" value="<?php echo $NOM; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Prènom<br />
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="text" name="prenom" size="30" maxlength="20" value="<?php echo $PRENOM; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Adresse<br />
              </td>
              <td><br />
              </td>
              <td><input type="text" name="adresse1" size="30" maxlength="150" value="<?php echo $ADRESSE1; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Adresse2<br />
              </td>
              <td><br />
              </td>
              <td><input type="text" name="adresse2" size="30" maxlength="150" value="<?php echo $ADRESSE2; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Code_postal<br />
              </td>
              <td><br />
              </td>
              <td><input type="text" name="code_postal" size="30" maxlength="40" value="<?php echo $CODE_POSTAL; ?> " disabled="disabled"><br />
              </td>
            </tr>
              <td>Ville<br />
              </td>
              <td><br />
              </td>
              <td><input type="text" name="ville" size="30" maxlength="40" value="<?php echo $VILLE; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Pays<br />
              </td>
              <td><br />
              </td>
              <td><input type="text" name="pays" size="30" maxlength="40" value="<?php echo $PAYS; ?> " disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td>Email<br />
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="text" name="email" size="30" maxlength="150" value="<?php echo $EMAIL; ?> " disabled="disabled"><br />
              </td>
            </tr>
              <td>Confirmation email<br />
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="text" name="email_confirm" size="30" maxlength="150" value="<?php echo $EMAIL_CONFIRM; ?> "disabled="disabled"><br />
              </td>
            </tr>
            <tr>
              <td><br />
              </td>
              <td><br />
              </td>
              <td><input type="HIDDEN" name="ip" value="<?php echo $adresse_ip ; ?>" size="30" ><br />
              </td>
            </tr>
            <tr>
              <td>6<br />
              </td>
              <td><br />
              </td>
              <td><input type="HIDDEN" name="niveau" value="<?php echo $niveau ; ?>" size="30" ><input type="submit" name="modifier" value="Modifier"><br />
              </td>
            </tr>
              <td>4<br />
              </td>
              <td><br />
              </td>
              <td><input type="HIDDEN" name="date_inscription" value="<?php echo $date ; ?>" size="30" ><br />
              </td>
            </tr>
            <tr>
              <td>5<br />
              </td>
              <td><br />
              </td>
              <td><input type="HIDDEN" name="heure_inscription" value="<?php echo $heure ; ?>" size="30" ><br />
              </td>
            </tr>
            <tr>
              <td>4<br />
              </td>
              <td><br />
              </td>
              <td><input type="HIDDEN" name="date_inscription" value="<?php echo $date_inscription ; ?>" size="30" ><br />
              </td>
            </tr>
            <tr>
              <td>5<br />
              </td>
              <td><br />
              </td>
              <td><input type="HIDDEN" name="heure_inscription" value="<?php echo $heure_inscription ; ?>" size="30" ><br />
              </td>
            </tr>
            <tr>
              <td>Login<br />
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="text" name="login" size="30" /><br />
              </td>
            </tr>
              <td>Mot de passe<br /> 
              </td>
              <td><?php echo "<align='right' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="password" name="pass" size="30" /><br />
              </td>
            </tr>
            <tr>
              <td>Confirmation mot de passe <br />
              </td>
              <td><?php echo "<align='left' style='color:red;'><strong>(*)</strong>"; ?><br />
              </td>
              <td><input type="password" name="pass2" size="30" /><br />
              </td>
            </tr>
              <td><br />
              </td>
              <td><br />
              </td>
              <td><input type="button" value="page précédente" onclick="javascript:history.back()"><br />
              </td>
            </tr>
            <tr>
              <td><br />
              </td>
              <td><br />
              </td>
              <td><input type="reset" value="Effacer"> <input type="submit" name="envoyer" value="S'inscrire"><br /> 
              </td>
            </tr>
            <tr>
              <td><br />
              </td>
              <td><br />
              </td>
              <td><br />
              </td>
            </tr>
          </tbody>
        </table>

    Merci de votre aide

  2. #2
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Par défaut
    Si je devais faire ça, probablement que je sérialiserais les données du formulaire 1, les mettrais dans un champ caché du 2.

    Puis sérialiserais les données du 1 et du 2 mises dans un champ caché du 3

    A la fin y'a plus qu'a dé-sérialiser le champ caché.

  3. #3
    Membre émérite 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
    Par défaut
    Salut

    Tu envoies tes variables via la méthode Post, idéalement, tu devrais les mettre en variable de session comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    $_SESSION['nom'] =($_POST['nom']);
    //.....

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Sur le submit du formulaire, tu récupéres ses valeurs de champs avec le $_POST et tu fais des mises à jour de la $_SESSION comme indique ALain pour les valeurs que tu souhaites garder jusqu'au dernier formulaire.

    Donc pour le passage de formulaire en formulaire soit tu modifies des valeurs dans la session( $_SESSION['unChamp']) si il y a eu effectivement une modification, soit tu ajoutes un nouveau champ en utilisant $_POST.

  5. #5
    Membre émérite 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
    Par défaut
    re,

    Et par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="nom" size="30" maxlength="30" value="<?php if (isset($_SESSION['nom'])) { echo $_SESSION['nom']; } ?>" disabled="disabled">

  6. #6
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Par défaut
    Par pur idéologisme, je conseillerais plutôt de faire transiter les données de formulaire en formulaire dans un champ caché.

    En effet les sessions ne sont pas faites pour être utilisées comme rustine pour y stocker des variables qu'on voudrait persistante juste sur 2 pages.

    Ca peut parraitre extremiste, mais c'est en prenant l'habitude de ne pas utiliser une solution rustine si une autre utilisation plus académique est possible qu'on évite de finir avec des usines à gaz.

    PS: question subsidiaire, y'a-t-il un traitement entre les formulaires ?

    Parce que l'idéal imho serait de faire 3 formulaires sur la même page qui s'affichent un à un et si besoin est de compléter les items d'un a partir des données d'un premier, le faire avec ajax.

Discussions similaires

  1. Garder saisies formulaire sans session ?
    Par zesavantfou dans le forum Langage
    Réponses: 1
    Dernier message: 30/11/2008, 16h42
  2. [PEAR][HTML_QuickForm] Remplir un nouveau formulaire sans fermer la session
    Par Minicodeuse dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 03/09/2008, 11h27
  3. Session sans login!
    Par vivikowski dans le forum Langage
    Réponses: 7
    Dernier message: 09/06/2008, 10h18
  4. Persistance de formulaire sans session
    Par supermanu dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/07/2006, 14h30
  5. Réponses: 12
    Dernier message: 24/09/2003, 15h26

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