2009-10-03 3 views
0

Я создаю сессию, и я хочу, переменная будет доступна для всего сайта, так, например:Как настроить сеанс с PHP, как сделать его глобальным для всего сайта?

Джо Мыльные приземляется на странице под названием красно-widgets.php, - переменная сеанса Джо есть, скажем, «красно-виджеты». Затем Джо нажимает на другую страницу с именем blue-widgets.php. Я бы хотел, чтобы переменная сеанса оставалась оригинальной «красной виджетами».

Как это можно сделать с помощью URL-адреса?

ответ

4

Вы не ограничены одной переменной сеанса, у вас может быть столько, сколько вам нужно.

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: Я просто пишу то же самое ... – jeroen

+0

Извините, ребята, полный вопрос новобранец. Просто протестирован там, и он работает так, как планировалось. Итак, в основном переменные сеанса являются глобальными ?, но где они «остаются»? –

+1

На сервере. Если вы ничего не изменили, обработчик php-файлов сохраняет данные сеанса в файлы в каталоге, указанном session.save_path, см. Http://docs.php.net/session.configuration#ini.session.save-path – VolkerK

4

Всякий раз, когда PHP страница загружается, просто позвоните session_start();. Это будет либо 1. начать новый сеанс, если он не существует, либо 2. перезапустить сеанс, который ранее был установлен. Чтобы создать новую переменную сеанса, выполните следующие действия:

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

Если вы хотите убить сессию, так что вы можете начать новую, вы можете сделать:

session_destroy(); 

Если вы хотите стереть все переменные сессии, но не убить текущую сессию, вы можете сделать:

session_unset(); 
1

Простой: на красно-widgets.php:

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

на сине-widgets.php:

session_start(); 
if(!$_SESSION['red-widgets']){ 
    //Joe weren't on red-widget.php, diffrent action here... 
} 
Смежные вопросы