Bonjour,
Je possède une page haut.php dans laquelle se trouve deux includes:
La première invoque theme1.php qui définit la variable de session theme, qui est un tableau.
La deuxième invoque defaut.php qui récupère cette variable theme et modifie le code css en fonction de celle-ci.
Le problème est que defaut.php ne trouve pas la variable et me sort cette erreur:
Je tiens à préciser que je suis en local.Notice: Undefined index: theme in /var/www/html/Ressources/Styles/defaut.php on line 21
Voici les codes:
haut.php: (Raccourcis)
theme1.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php include("var.php"); // Contient la variable $info qui sont les données utilisateur provenant de la bdd session_start(); include("http://192.168.1.56/Projet_Humanist_Weight/Ressources/Styles/Themes/" . $info["theme"] . ".php"); include("http://192.168.1.56/Projet_Humanist_Weight/Ressources/Styles/defaut.php"); ?>
defaut.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php session_start(); $fond = "#FCFCFC"; $theme = array($fond, "test"); $_SESSION["theme"] = $theme; ?>
J'ai essayé avec une variable "simple" et j'ai toujours la même erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php session_start(); global $fond; ?> <style type="text/css"> Code css </style>
Mon but est de réussir à transmettre (par variable simple ou session) le tableau généré par theme1.php à defaut.php afin qu'il puisse modifier le css en fonction du thème sélectionné par l'utilisateur.
Si vous avez besoin du code entier de haut.php, n'hésitez pas à demander.
Merci d'avance.
EDIT: En cherchant, je suis tombé sur ceci .
Si j'ai bien compris, ils indiquent que deux includes ne peuvent pas se communiquer entre eux car les deux pages sont générées séparement.
Effectivement, si je fais un echo de la variable de session "theme" après les includes, dans le fichier haut.php, j'obtiens mon résultat.
EDIT2: J'ai trouvé la solution: Pour communiquer avec une include, il faut que le chemin de celle-ci ne soit pas direct (Je le savais déjà, mais ça ne m'est pas revenu à l'esprit ).
Partager