Страницы:
0 1 2 3 4 |Все сразу|
Приступим к работе с сессиями
Для начала решим, как правильно должны начинаться наши скрипты
и что мы собираемся хранить в сессиях. Предложение N1 - несколько
строк, которые будут отвечать за правильный запуск сессий и обработки
новых пользователей, которым надо записать какие-то переменные для
начала пработы, хорошо бы поместить в отдельный файл. Итак, файл
index.php будет главным на сайте, а описанные команды мы поместим
в default.php.
Предложение N2 - наша программа будет содержать много функций,
в которых иногда будет происходить доступ к переменным сессий, следовательно
последние надо будет делать глобальными в функциях. Если у нас будет
десяток переменных, то нам придется писать большую строку для объявления
переменных глобальными. Если же мы зарегистрируем в сессиях только
одну переменную-массив с коротким названием, то нам будет легко
ее прописывать глобальной и легко обращаться. Итак, предложение
2 - используем переменную $s, все необходимые параметры пишем в
$s как в массив: $s[название]=значение.
Что записывать всем пользователям по умолчанию? Давайте, при
входе нового посетителя, будет объявлять переменную $s[start], в
которой запишим время входа пользователя. Чтобы получить текущее
время (число) используют time(). Больше ничего делать с новыми посетителями
не надо. На главной страние мы будем выводить фразу "Добро
пожаловать!", если человек впервые тут и фразу "Вы пришли
к нам ?? секунд назад". Подсчитать кол-во секунд весьма просто:
time() - текущее время, $s[start] - уже прошедшее (когда мы произвели
запись $s[start]). Таким образом, надо от большего отнять меньшее.
Пишем эту программу.
Файл default.php:
<?
// до первой строки с "<?" вы не должны ставить
пустые строки или пробелы
// данный файл должен начинаться с "<?"
// в тексте программ возможно любое кол-во пустых строк
unset($s);
// удаление переменной $s, если она вдруг была объявлена
// чтобы никто не мог ничего через URL ничего записать
// например, так: index.php?s[start]=...
// сессии еще не запустились, поэтому мы удаляем не ту переменную
$s,
// что появиться после следующей строки
session_start();
// включить поддержку сессий. Если человек новый, ему
// выдадут случайный идентификатор. Но мы про это пока не
// думает, а сразу приступаем к использованию сессии
session_register("s");
// зарегистрировать переменную $s как переменную сессии
// обратите внимание - пишем "s" в функции, а не $s
// с этого момента вся информация в будущем массиве $s будет
сохраняться
?>
Файл index.php (или любой файл вашего будущего сайта):
<?
// до первой строки с "<?" вы не должны ставить
пустые строки или пробелы
include("default.php");
// подключаем файл default.php из текущего каталога (из того
же, где и сам
// index.php лежит)
if (!isset($s['start'])) {
// если выполнится это условие, т.е. переменной $s[start] еще
несуществует,
// то мы может произвести какие-то действия, пусть даже самые
простые.
// Используем переменную $s[start] как флаг и отсчет времени
$s['start']=time();
// в переменную запишеться ненулевое положительное число
// больше данный IF не выполниться, т.к. теперь и далее переменная
// $s[start] существует (и дополнительно хранит полезное число)
echo "Добро пожаловать на наш сайт!";
// выводим сообщение в знак того, что данный посетитель пришел
// пришел впервые
}
else {
// если выполниться это условие, то это старый посетитель
// выводим для него соответствующую фразу и не производим
// установку переемнных по умолчанию
echo "Вы впервые пришли на наш сайт ".(time()-$s['start'])."
секунд назад";
}
?>
Обратите внимание, что программа при выключенных куках работать
не будет. Для его работоспособности надо при первом обращении пользователя
сделать header("Location: $PHP_SELF?".SID); (разумеется,
при этом человек не увидет приветствие).
Страницы:
0 1 2 3 4 |Все сразу|