Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2011, 22h15   #1
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 2
Points : 2
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
mike12z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 22h34   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
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 : 587
Points : 861
Points : 861
ce genre d'affectation fonctionne :
Code :
$_SESSION["$a"] = "null";
de même que celle-ci :
Code :
$_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 ?
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 23h08   #3
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 2
Points : 2
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 !
mike12z est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 23h44   #4
Invité de passage
 
Homme
Étudiant
Inscription : 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
Points : 2
Points : 2
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 !! :-)
mike12z est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h35.


 
 
 
 
Partenaires

Hébergement Web