2009-10-03 4 views
0

Je crée une session et je veux une variable soit disponible pour l'ensemble du site, ainsi par exemple:Lors de la configuration d'une session avec PHP, comment la rendre globale sur l'ensemble du site?

terres Joe savon sur une page appelée rouge widgets.php, - la variable de session de Joe est disons 'widgets rouges'. Joe clique alors sur une autre page appelée blue-widgets.php. Je voudrais que la variable de session soit toujours l'original "rouge-widgets".

Comment cela peut-il être fait avec l'url?

Répondre

4

Vous n'êtes pas limité à une seule variable de session, vous pouvez en avoir autant que vous le souhaitez.

session_start(); 

if (!isset($_SESSION['widget'])) { 
    $_SESSION['widget'] = 'i am changed only if there isnt already a widget session var'; 
} 

$_SESSION['someOtherVar'] = 'i am being changed on every page'; 
+0

+1: je en train d'écrire la même chose ... – jeroen

+0

Désolé les gars, question recrue complète. Juste testé là-bas et cela fonctionne comme prévu. Donc, les variables de session sont globalement globales? Mais où restent-elles? –

+1

Sur le serveur. Si vous n'avez rien modifié, le gestionnaire de fichiers php enregistre les données de session dans les fichiers du répertoire spécifié par session.save_path, voir http://docs.php.net/session.configuration#ini.session.save-path – VolkerK

4

Chaque fois qu'un chargement de la page PHP, il suffit d'appeler session_start();. Cela va soit 1. commencer une nouvelle session si elle n'existe pas, soit 2. redémarrer la session précédemment établie. Pour créer une nouvelle variable de session, procédez comme suit:

session_start(); // start or restart the session 
$_SESSION['mySessionVariableName'] = "My session variable value."; 

Si vous voulez tuer une session afin que vous puissiez commencer une nouvelle, vous pouvez faire:

session_destroy(); 

Si vous voulez effacer tous variables de session, mais pas tuer la session en cours, vous pouvez faire:

session_unset(); 
1

simple: sur le rouge-widgets.php:

session_start(); 
$_SESSION['red-widgets'] = 1; 

sur bleu-widgets.php:

session_start(); 
if(!$_SESSION['red-widgets']){ 
    //Joe weren't on red-widget.php, diffrent action here... 
} 
Questions connexes