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 :

Variable $_SESSION automatisé


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 12
    Par défaut Variable $_SESSION automatisé
    Bonjour,

    Je réalise un formulaire de type récensement (dépliant de trois pages écrit très petit) en php/mysql pour l'installer sur un tablet pc pour automatiser le tri des résultats.

    Pour passer mes variables en session, j'ai adopté et adapté ce bout de code déconseillé pour passer les register global à off.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach( $_REQUEST as $a => $b)
    {
    $$a = $b;
    }
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach( $_POST as $a => $b)
    {
    $_SESSION[$a] = $b;
    }
    Dans la pratique après avoir testé les retours du tableau $_SESSION, ça marche mais y a-t-il des désavantages à faire de la sorte en gardant à l'esprit qu'il s'agit d'une application en local ?

    Merci pour les conseils.

    Bruno

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Quel est l'intérêt ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 12
    Par défaut
    J'ai plus de 200 critères à sauver et je créais plusieurs pages en laissant une option de rectification sur chacune pour l'utilisateur final. De plus certains champs conditionnent l'affichage d'autres champs, je pensais faire comme ça pour éviter de faire à la main chaque champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_SESSION["a"] = $_POST["a"];
    $_SESSION["b"] = $_POST["b"];
    $_SESSION["c"] = $_POST["c"];
    $_SESSION["d"] = $_POST["d"];
    ...
    Il y a une contrindication ?

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Oui. J'en vois au moins une : que tu te fasses écraser une variable de session alors qu'elle ne devrait pas l'être.

    Je serais toi je ferais au moins comme ça : (pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['registre'] =  array_merge_recursive($_SESSION['registre'], $_POST);
    Du coup, tu peux mettre d'autre variables dans ta session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['pseudo'] = ...
    $_SESSION['is_admin'] = ...
    Et elles ne risquent pas d'être écrasées

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 12
    Par défaut
    Superbe, je te remercie beaucoup, je ne connaissais pas cette fonction.

    En plus avec cette méthode, j'ai le retour des champs du formulaire sur le quel on a validé, la première méthode me mettant les variables du formualire de changement de style :/ c'était pas top.

    Par contre, visiblement ça écrase la tableau à chaque fois, j'imagie qu'un if s'impose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST["go"])) {
    $_SESSION['registre'] = array();
    $_SESSION['registre'] = array_merge_recursive($_SESSION['registre']; $_POST);
    }

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ben je ne sais pas quel est exactement ton besoin, mais j'ai compris comme étant une succession de formulaire dont tu as besoin de garder les valeurs soumises à chaque fois.

    Exemple:
    Form1 : 'nom', 'prenom'
    Form2 : 'age', 'sexe', 'ville'
    Form3 : confirmation => 'nom', 'prenom', 'age', 'sexe', 'ville'

    L'utilisateur ouvre la session, le registre est vide :
    $_SESSION['registre'] = array();

    L'utilisateur poste Form1 :
    $_SESSION['registre']['nom'] = 'Donald';
    $_SESSION['registre']['nom'] = 'Duck';


    L'utilisateur poste Form2 , avec array_merge, les valeurs de l'ancien registre sont conservées :
    $_SESSION['registre']['nom'] = 'Donald';
    $_SESSION['registre']['nom'] = 'Duck';
    $_SESSION['registre']['age'] = '20';
    $_SESSION['registre']['sexe'] = 'Gros';
    $_SESSION['registre']['ville'] = 'Disneyland';


    L'utilisateur poste Form3, avec array_merge, les valeurs du registre sont modifiées :
    $_SESSION['registre']['nom'] = 'Donald';
    $_SESSION['registre']['nom'] = 'Duck';
    $_SESSION['registre']['age'] = '18';
    $_SESSION['registre']['sexe'] = 'Gros';
    $_SESSION['registre']['ville'] = 'Disneyland';

    C'est comme ça que je l'ai compris, je peux me fourvoyer.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2008, 21h59
  2. problème undefined variable: _SESSION
    Par Sniper94-2 dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2007, 10h34
  3. Réponses: 4
    Dernier message: 13/03/2007, 12h19
  4. [Sécurité] variable $_session dans du javascript
    Par sam01 dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2006, 19h38
  5. Changer une variable $_SESSION -> Formulaire
    Par Nadd dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2006, 23h37

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