Практическое занятие
Тема: Работа с датами в PHP. Сессии в PHP
Пример 1. Создание простой сессии.
Создать три страницы.
1) При посещении пользователем
первой страницы index.php открывается сессия
и регистрируется переменная username:
<?
//запускаем
сессию
session_start();
//регистрируем
переменную username и записываем в нее данные
$_SESSION['username'] = "ivan";
//выводим
текст-приветствие, используя значение переменной username
сессии
echo "Привет,
".$_SESSION["username"]."<br>";
//выводим
ссылку для перехода на вторую страницу
echo "<a href='page2.php'>На следующую страницу</a>";
?>
2) После этого, пользователь нажимает на ссылку и попадает на страницу page2.php, код которой приведен ниже:
<?
//запускаем
сессию
session_start();
//выводим текст
echo $_SESSION["username"]." , ты пришел на другую страницу
этого сайта!<br>";
//выводим ссылку
для перехода на третью страницу
echo "<a href='page3.php'>На следующую страницу</a>";
?>
3) При нажатии на ссылку, пользователь попадает на страницу page3.php, при этом происходит разрегистрация сеансовой переменной и уничтожение сессии. Соответствующий код реализации:
<?
//запускаем
сессию
session_start();
// разрегистрировали переменную username
unset($_SESSION["username"]);
//выводим текст и
содержимое переменной username сессии
echo "Привет, ".$_SESSION["username"]; // теперь имя пользователя уже не выводится
// разрушаем
сессию
session_destroy();
?>
Как видно из рисунка, после разрегистрации сеансовой переменной значение массива $_SESSION["username"] уже недоступно:




Пример 4. Cчетчик обновления страницы пользователем.
Скрипт должен выводить на экран количество обновлений. При первом заходе на страницу он должен вывести сообщение о том, что вы еще не обновляли страницу. Данные храните в сессии.
<?php
//стартуем
сессию
session_start();
//если сессия пустая
if (empty($_SESSION['kol_update']))
{
//записываем в сессию значение 0, что означает 0 раз
обновлялась страница
$_SESSION['kol_update']=0;
//выводим текст
echo 'Вы еще не обновляли страницу <br>';
}
//если сессия непустая
else
{
//наращиваем значение – счетчик числа обновлений страницы
$_SESSION['kol_update']++;
//выводим текст с количеством обновлений на странице
echo 'Количество
обновлений страницы = '.$_SESSION['kol_update'];
}
?>
Пример 5. Запишите в сессию время захода пользователя на сайт. При обновлении страницы выводите, сколько минут и секунд назад пользователь зашел на сайт.

Пример 6. На странице покажите пользователю баннер с кнопкой 'Не показывать больше!'. Если он нажмет на эту кнопку – не показывайте ему баннер в течение месяца.


Пример 7. Сделайте на сайте 5 картинок с товарами. Реализуйте корзину. Под каждой картинкой должна быть указана цена товара и ссылка 'Положить в корзину'. По нажатию на эту ссылку этот товар должен занестись в корзину (сессия), также должна увеличиться общая сумма, которую должен заплатить пользователь.
Страница index.php




Страница korzina.php:

Самостоятельно: Добавьте кнопку Очистить корзину, по нажатии на которую происходит разрушение сессии. Проверьте работоспособность кнопки, зайдя на страницу korzina.php – там ничего не должно отображаться.