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 :

Garder une variable tout en revenant en arrière


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut Garder une variable tout en revenant en arrière
    bonjour à tous

    je voudrais pouvoir garder une variable d'un formulaire en revenant en arriere puis en revenant sur la page récapitulatif

    exple :

    page 1 ==> formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?
    session_start();
     
    echo "<html>
    <form method = 'POST' action = panier2.php>
    <input type = text name = nom>
    <input type = text name = prenom>
    <input type = submit>
    </form>
    </html>";
    ?>
    page 2 ==> récapitulatif des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?
    session_start();
     
    $nom =$_POST['nom'];
    $prenom = $_POST['prenom'];
    echo $nom;
    echo $prenom;
     
    echo "<a href = page1.php>Retour</a>";
    ?>
    en faite ce que je voudrais est que si je remplis seulement le champs 'nom', (je valide) que je reviens en arriere (donc je reviens sur la page 1), je remplis le champs 'prenom', que je valide, il faudrais que sur la page 2 j'ai le nom et le prenom (le nom a été remplis avant le prenom)

    donc si quelqu'un à une idée..

    merci beaucoup

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    Comme tu utilises les sessions, utilise les variables de session.

  3. #3
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Ajoute l'attribut value à tes input comme ceci:
    <?php
    session_start
    ();

    echo <<< blocHtml
    <html>
    <form method="post" action="panier2.php">
    &#160;&#160;&#160;&#160;&#160;&#160;<input type="text" name="nom" value="
    {$_SESSION&#91;'nom']}" />
    &#160;&#160;&#160;&#160;&#160;&#160;<input type="text" name="prenom" value="
    {$_SESSION&#91;'prenom']}" />
    &#160;&#160;&#160;&#160;&#160;&#160;<input type="submit" value="Envoyer" />
    </form>
    </html>
    blocHtml;?>
    Colorez votre code PHP sur les forums grâce à Developpez.com
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  4. #4
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    pour le bloc html, j'ai oublié de le mettre en faisant mon copié collé

    en faite je veux juste que ça garde en memoire le nom et que ça ne s'affiche pas dans la page 1 et quand le prenom est rempli dans le champs, à la page 2 le nom + prenom sont affichés.


    c'est juste un test que je fais car mon but c'est faire un panier
    donc en faite, pour mon projet, c'est que quand une personne met des article dans un panier, et qu'après qu'il retourne sur le site pour pouvoir acheter d'autres articles, il retrouve dans son panier les articles qu'il a avant mis + les nouveaux articles

    c'est pour cela que je fais ce petit exercice

  5. #5
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    FAut que tu stocke ca dans une BDD....
    Sinon, si une personne achete 100 articles, il y aura 100 variable de session...En plus tu ne peux pas savoir à l'avance combien d'article une personne va acheter!
    Tu fais un Table ou tu mets en correspondance un article et une personne...

    Voilà ce que j'en dis!
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  6. #6
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ça je verrais après, j'essaye dejà de faire le petit exercice
    (j'ai enlevé le champs prenom j'ai juste gardé le champs nom)
    bon quand je renseigne le champs nom dans la page 1, je vais à la page 2, puis je retourne à la page 1, ma session marche bien.
    mais si je veux renseigner un autre nom, et bien ma 1ere session n'existe plus.
    en faite ce que je voudrais c'est pouvoir garder tous les noms des différentes sessions.
    par exemple :
    je tape "dupont", je vais à la page 2 (il apparait bien "dupont"), puis revient à la page 1, je tape "durand" puis je vais à la page 2 (il apparait que "durand" et pas "dupont") et c'est sur cette page que je voudrais voir "dupont" et "durand"

    page 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?
    session_start();
    if (isset ($_SESSION['nom']))
    {
      $_SESSION['nom'];
      echo $_SESSION['nom'];
    echo "<html>
    <form method = 'POST' action = panier2.php>
    <input type = text name = nom>
    <input type = submit>
    </form>
    </html>";
    ?>
    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
     
    <?
    session_start();
    if (!empty ($_POST['nom']))     // si champs nom renseigné
    {
    $nom =$_POST['nom'];
    }
    if (isset($_POST['nom']))
    {
      $_SESSION['nom'] = $_POST['nom'];
    }
     
    if (isset($_SESSION['nom']))
    {
    echo $_SESSION['nom'];
    }
    ?>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Essaie en déclarant la variable de session comme un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['nom'][] = $_POST['nom'];
    Puis tu parcoure le tableau pour les echo.

    chuis pas du tout sûr que ca marche

  8. #8
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    comprends pas trop là..

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Dans page2, tu fais:
    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
    <?
    session_start();
    if (!empty ($_POST['nom']))     // si champs nom renseigné
    {
    $nom =$_POST['nom'];
    }
    if (isset($_POST['nom']))
    {
      $_SESSION['nom'][] = $_POST['nom'];
    }
     
    if (isset($_SESSION['nom']))
    {
    echo $_SESSION['nom'];
    } ?>
    Comme $_SESSION['nom'] est un tableau, t'as plus qu'à le parcourir pour récupérer toutes les valeurs.

  10. #10
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ceci ne marche pas

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    je n'ai pas trop suivi, mais
    • je suis étonné que tu contrôles d'abord si $POST['nom'] est vide, et ensuite seulement s'il existe
    • j'aurais remplacé $_SESSION['nom'][] par $_SESSION['nom'], ou si tu désires que ce soit un tableau $_SESSION['nom'][0]

  12. #12
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    c'est
    je reexplique

    page 1 =
    je remplis le champs nom (exple : dupond)

    page 2 =
    dupond s'affiche

    puis je reviens sur la page 1, avec la session, dupond s'affiche

    je reremplis le champs nom = durand
    je revisn sur la page 2 et seul durand s'affiche

    ce que je voudrais c'est que dupond et durand s'affichent sur la page 2 et non durand seul

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    sorry j'avais pas lu toute la discussion

    primo oui c'est le if(!empty) avant le if(isset) qui m'étonne.

    secundo, pour ton problème : oui la solution de billoum parait être la bonne : chaque fois que ton client valide ton formulaire, tu enregistres le nom dans un tableau

    je ne sais plus si l'instrucion $_SESSION['nom'][] augmente à chaque fois d'un indice. si c'est le cas, cela devrait fonctionner tel quel. sinon, utilise $_SESSION['nom'][$n] et tu incrémente $n à chaque fois que tu passes dans le formulaire. pour ce faire, il faut bien sûr que $n soit également une variable de session !

    bien sûr, dans ton formulaire, tu dois créer une boucle pour afficher tous les noms déjà enregistrés, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ( $i = 0, $i <= $n, i++ ) echo $_SESSION['nom'][$i];
    tout en gardant le input name = nom et le input submit.

    Si tu souhaites que ton client puisse changer les noms déjà enregistrés, il faut que ta boucle fasse un echo avec des inputs. assures-toi que les name diffèrent à chaque fois (par exemple name = nom$i) et n'oublie pas de gérer les modifications. dans ton cas, pour tes essais, fais cela dans une seconde phase de développement de ton script

Discussions similaires

  1. [Débutant] garder une variable durant toute la connexion
    Par nouass dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/03/2013, 14h42
  2. [SQL] Recuperer et garder une variable
    Par Dinow dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/03/2008, 16h17
  3. Rafraichir page et garder une variable
    Par magicwill dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 25/07/2007, 14h05
  4. Garder une variable en mémoire
    Par 123quatre dans le forum Langage
    Réponses: 3
    Dernier message: 10/07/2007, 19h01
  5. Comment garder une variable en mémoire...
    Par sam01 dans le forum Langage
    Réponses: 17
    Dernier message: 24/04/2006, 13h02

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