|
|
|
|
|
для: larush
(15.11.2005 в 15:30)
| | Это не совсем одно и то же.
Разница в том, что массив $_SESSION является суперглобальным или автоматически глобальным, а массив $HTTP_SESSION_VAR в функциях нужно объявлять глобальным директивой global.
Фактически это текстовый файл, содержащий строку с сериализованными переменными.
При любом добавлении переменных в этот массив автоматически производится модификация файла. А строка автоматически читается из файла и десериализуется в ассоциативный массив. с именем $_SESSION .
Добавлю еще, что для повышения безопасности register_globals обычно отключают, поэтому нужно самостоятельно извлекать переменные из этого массива, т.е. делать
| |
|
|
|
|
|
|
|
для: larush
(15.11.2005 в 15:30)
| | Это одно и тоже, но рекомендуется использовать $_SESSION, так как $HTTP_SESSION_VAR будет отменён в PHP 6 и уже сейчас отключается по умолчанию. | |
|
|
|
|
|
|
|
для: human
(15.11.2005 в 13:03)
| | Во дела !!! Спасибо, Хуману !!!!
А в чем принципиальное отличие между $_SESSION и $HTTP_SESSION_VAR ? Я читал, что это просто варианты синтаксиса разных версий. | |
|
|
|
|
|
|
|
для: larush
(15.11.2005 в 10:28)
| | Вот работающий синтаксис.
Нужно или пользоваться массивом _SESSION или в функции объявлять глобальнымHTTP_SESSION_VARS
$_SESSION['a'] = 1;
$_SESSION['b'] = 2;
$_SESSION['c'] = 3;
$a = $_SESSION['a'];
$b = $_SESSION['b'];
$c = $_SESSION['c'];
echo "1) $a $b $c <br>";
echo '2)' .$HTTP_SESSION_VARS['a']
.' 2)' .$HTTP_SESSION_VARS['b']
.' 2)' .$HTTP_SESSION_VARS['c']
.'<br />';
TestSession();
function TestSession()
{ global $HTTP_SESSION_VARS;
$a = $_SESSION['a'];
$b = $_SESSION['b'];
$c = $_SESSION['c'];
echo "3) $a $b $c <br>";
echo '4)' .$HTTP_SESSION_VARS['a']
.' 4)' .$HTTP_SESSION_VARS['b']
.' 4)' .$HTTP_SESSION_VARS['c']
.'<br />';
}
|
| |
|
|
|
|
|
|
|
для: larush
(15.11.2005 в 10:28)
| | А является ли массив $HTTP_SESSION_VARS суперглобальным? | |
|
|
|
|
|
|
|
для: human
(15.11.2005 в 10:05)
| | В надставках на браузеры типа MyIE или Maxton, новые окна содержат сессии. Для разработчиков конечно не паноцея, а вот для пользователей удобно, особенно если любишь открывать страницы в новых окнах. | |
|
|
|
|
|
|
|
для: human
(15.11.2005 в 10:05)
| | хорошо, понял. А как быть с таким вариантом. Есть накрученный движок (всего там понапихано, уж и не чувствую я его). Пишу вывод на экран некоторых данных сессии - нормально, далее идет вызов функции из этого же файла, и в ней уже данных сессии нету :-(.. Куда они деваются ?
echo '1=' .$HTTP_SESSION_VARS['Appl_id']
.' 1=' .$HTTP_SESSION_VARS['user_group']
.' 1=' .$HTTP_SESSION_VARS['user_id'];
while($posts = @mysql_fetch_array($result))
echo " <TABLE BORDER=1 ...>";
put_replys(....);
$i++;
echo '</td></tr></TABLE><br>';
}
//*******************************************************************
function put_replys($date, $msg, $email, $name, $post_id, $user_id)
{
echo '2=' .$HTTP_SESSION_VARS['Appl_id']
.' 2=' .$HTTP_SESSION_VARS['user_group']
.' 2=' .$HTTP_SESSION_VARS['user_id'];
|
так вот значения сессии "1=" на экране есть, а "2=" нет. | |
|
|
|
|
|
|
|
для: larush
(21.10.2005 в 17:22)
| | Проблема заключается в следующем.
Сессия доступна только из того окна броузера, в котором она была создана (если не пользоваться фреймами), а ссылка с Target=_Blank открывает НОВОЕ окно броузера, в котором session_start создает ПУСТУЮ сессию. Это равносильно тому, как если бы заново запустили броузер на этом же или другом компьютере. Понятно, что никакой инфомации из сессии, открытой в первом окне, получить невозможно.
Кстати, несмотря на обилие напущенного в книжках тумана, сессия - это всего-навсего простой текстовый файл, содержащий единственную строку с сериализованными в нее переменными. Причем этому файлу можно имя и каталог для хранения свои указывать.
(Плюс куки броузера, но они нужны только для автоматического поиска этого файла.)
Поэтому, в принципе, из нового окна можно получить информацию о переменных из сессии другого открытого окна, если передать ему имя и путь файла нужной сессии. А потом его отрыть и сделать unserialize(). | |
|
|
|
|
|
|
|
для: cheops
(14.11.2005 в 17:12)
| | К сожалению на данный момент времени, я снес тот вариант, перешел на иной. Но было что-то вроде
<a href= "...." target=_blank>
Куки включены
Сейчас у меня иной вопрос, открываю по нему новую тему | |
|
|
|
|
|
|
|
для: larush
(14.11.2005 в 15:54)
| | 1) Как выглядит код нового окна?
2) Cookie в браузере включены? | |
|
|
|
|