Forum Webscript.Ru
Программирование => PHP => Тема начата: Vano от 18 Октября 2003, 16:03:17
-
Здравствуйте господа.
Есть файл xxx.php
unset($s);
session_start();
session_register(\'s\');
if (!isset($HTTP_SESSION_VARS[\'s\'])) $s = null; else $s = $HTTP_SESSION_VARS[\'s\'];
if (!isset($s[\'count\'])) {
$s[\'count\']=1;
} else {
$s[\'count\']++;
}
echo \'Вы загрузили эту страницу раз: \'.$s[\'count\'];
?>
На локальном апаче(Win XP) значение $s[\'count\'] останавливается на 2, далее не увеличивается.
У хостера увеличивается при каждой загрузке.
При добавлении в конец файла строки $HTTP_SESSION_VARS[\'s\'] = $s; на локальном апаче $s[\'count\'] начинает увеличиваться.
В чем моя ошибка? Или так работает PHP под виндовс?
-
"Caution: If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister()." (c) [p]session_register[/p]
Другими словами, если ты используешь session_register(), хотя этот способ является устаревшим, то ты не должен использовать массивы $HTTP_SESSION_VARS или $_SESSION.
Это был ответ на твой вопрос, но твой способ не только неправильный, но и устаревший.
Правильно делать так:
session_start();
// делаем что угодно со значением прямо в $_SESSION, например так:
$_SESSION[\'i\']++;
// или, если тебе так удобнее, создаешь новую переменную со значениме из сессии,
// делаешь с ней то, что тебе нужно, а потом сохраняешь обратно в массив $_SESSION:
$i = $_SESSION[\'i\'];
$i++;
$_SESSION[\'i\'] = $i;
-
Большое спасибо!