2009-07-08 5 views
0

En header.php je:session

<?php 
if(!isset($_SESSION)) 
{ 
session_start(); 
} 
?> 

et plus bas que j'ai:

$_SESSION[theme] = $_GET[theme]; 

Basiquement il y a une liste déroulante où l'utilisateur sélectionne le thème du site, cela crée la valeur de $ _GET [thème] et je voudrais que la sélection soit mémorisée, cependant à chaque fois que la page est changée, le thème est réinitialisé. Header.php est le fichier d'en-tête pour chaque page - ne sais pas si c'est le problème.

Si print_r ($ _ SESSION) alors la valeur correcte est affichée après Array [theme] => mais si je clique sur une page différente alors Array [theme] => est réinitialisé à vide.

Aidez-moi s'il vous plaît!

Répondre

9

Qu'est-ce que vous avez probablement dans votre intention header.php était quelque chose comme ça

session_start(); 

//initialise new session 
if (!isset($_SESSION['theme'])) 
{ 
    $_SESSION['theme']='default theme'; 
} 

//change theme if user requested it 
if (isset($_GET['theme'])) 
{ 
    $_SESSION['theme'] = $_GET['theme']; 
} 

On dirait établissiez $ _SESSION [ « thème »], peu importe que ce soit dans le tableau $ _GET.

Notez également que j'ai utilisé des guillemets autour des index de tableau - évitez d'utiliser des mots simples à cette fin.

+0

Le long de la bonne voie - je pense, cependant le print_r juste montrer Array() –

+0

Ajoutez votre entier header.php à la question. –

+0

+1 pour ajouter 'sur les index de tableau. –

0

Inutile, vous devez démarrer la session sur TOUTES les pages PHP sur lesquelles vous l'utilisez. J'espère que cela pourra aider.