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 comme nom de variable session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Par défaut Variable comme nom de variable session
    Bonjour,

    Je suis entrain de coder un forum en php, et j'ai besoin d'aide pour définir des variables.

    Au fait, mon problème se trouve à l'intérieur d'une fonction fetch() sur ma bdd, où j'aimerais utiliser des éléments enregistrés pour créer des variables session.
    J'ai donc tout simplement nommé mes variables suivant cette logique :
    $enregistrements = $enr->fetch();
    $a=$enr['champ'];
    if (!isset($_SESSION["$a"])) {$_SESSION["$a"] = "null";}
    J'ai fait comme ça en sachant qu'on peut faire ça avec les $_POST, (donc utiliser quelque chose comme $_POST["$a"]) je pensais qu'il en serait de même pour les $_SESSION... mais ça fait planter le script, il me fait n'importe quoi. Comment peut-on définir le nom d'une variable session en fonction d'une autre variable ? Merci d'avance pour votre aide !
    Michaël

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    ce genre d'affectation fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION["$a"] = "null";
    de même que celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION[$variable] = "null";
    le problème vient peut etre d'ailleurs, as tu démarré la session avec session_start() tout au début de ton script ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Par défaut
    Oui oui j'ai bien mis un session_start() tout au début !!
    Alors je ne sais pas pourquoi ça ne va pas. :-(
    Au fait le but de ce code est de créer une page à part où se trouvent tous les messages au total, classés par forum, où chaque forum (qui correspond à un enregistrement d'une table contenant tous les forums) se présente sous forme de lien cliquable pour ouvrir ou fermer le forum en question. De cette manière, les forums qui sont ouverts le restent grâce aux variables sessions lorsqu'on en ouvre un autre.

    Voici donc une copie de mon script:

    $touslesforums = $bdd->query("SELECT * FROM forum_forums");
    while($forums = $touslesforums->fetch()) {
    $a = $forums['nom'];
    $b = $forums['id'];
    if (isset($_GET["$b"])) {$_SESSION["$b"] = $_GET["$b"];}
    if (!isset($_SESSION["$b"])) {$_SESSION["$b"] = "closed";}

    if ($_SESSION["$b"] == "closed") { ?>message à afficher avec le lien pour ouvrir le forum<?php ;} else { ?>Tout le contenu du forum avec lien pour le fermer<?php ;}
    } ?>


    Ce qui est louche c'est qu'il ne tient compte que du $_GET, par contre quand on ouvre un forum, les autres se ferment.

    Vous voyez quelque chose qui vous paraît incorrect là-dedans ? Parce que je suis complètement paumé ! Merci d'avance !

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 7
    Par défaut
    Hahaaaaaaaaaa c'est bon j'ai trouvé !
    Au fait j'avais défini ma variable session d'après l'id des enregistrements... du coup il confondait le nom de la session et le numéro de l'enregistrement des variables dans le tableau de sessions !!! Le problème est maintenant résolu !! :-)

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

Discussions similaires

  1. [PHP 5.2] Récupérer une variable POST avec une variable comme nom
    Par bailamos dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2008, 14h59
  2. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  3. Utiliser typename comme nom de variable
    Par Harzoglups dans le forum C++
    Réponses: 5
    Dernier message: 04/01/2006, 14h44
  4. donner la valeur d'une variable comme nom de table
    Par cladsam dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/10/2005, 15h16
  5. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12

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