Сессии в PHP
Сессии в PHP
В протоколе HTTP не сохраняется информация о предыдущих операциях. Поэтому, чтобы обмениваться информацией между различными веб страницами, PHP скриптами, нужно использовать специальный механизм сессий в PHP. Механизм сессии в PHP позволяет сохранять и передавать значения переменных между различными PHP скриптами. Таким образом, сессии позволяют хранить сведения о пользователях при переходах между несколькими страницами веб сайта. Механизм сессии широко используется в интернет магазинах для сохранения корзины пользователя, форм авторизации сайта, также позволяет веб сайту защититься от спама и накруток.
Общий алгоритм работы с сессиями в PHP
В начале PHP скрипта открываем сессию с помощью команды session_start();
Регистрируем переменную в глобальном массиве $_SESSION[] с помощью команды
if (!isset($_SESSION['имя переменной'])) $_SESSION['имя переменной']=начальное значение;
Чтобы использовать переменную в любом скрипте, обращаемся к ней с помощью команды
$_SESSION['имя переменной']
Рассмотрим пример PHP скрипта с сессиями, в котором подсчитывается количество посещений страниц сайта. У сайта будет две страницы - index.php и page.php.
Для страницы index.php код следующий
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
$_SESSION['counter']=$_SESSION['counter']+1;
echo "<br />Вы на скрипте index.php";
echo "<br /> Вы были на страницах сайта ".$_SESSION['counter']." раз. ";
echo "<br /><a href=".$_SERVER['PHP_SELF'].">Обновить эту страницу";
echo "<br /><a href=page.php>Ссылка на страницу page.php </a>";
?>
Для страницы page.php код следующий
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
$_SESSION['counter']=$_SESSION['counter']+1;
echo "<br />Вы на скрипте page.php";
echo "<br />Вы были на страницах сайта ".$_SESSION['counter']." раз. ";
echo "<br /><a href=".$_SERVER['PHP_SELF'].">Обновить эту страницу";
echo "<br /><a href=index.php>Ссылка на страницу index.php</a>";
?>
В index.php мы ввели переменную $_SESSION['counter'], в которую будет подсчитываться количество посещений страниц сайта.
В начале каждого скрипта открывается сессия
session_start();
Регистрируем переменную сессии $_SESSION['counter']
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
Увеличиваем счётчик посещений на 1
$_SESSION['counter']=$_SESSION['counter']+1;
Выводим на веб страницу, сколько раз на страницах сайта был пользователь
echo "<br /> Вы были на страницах сайта ".$_SESSION['counter']." раз. ";
Формируем ссылки для обновления страницы и перехода на другой скрипт
echo "<br /><a href=".$_SERVER['PHP_SELF'].">Обновить эту страницу";
echo "<br /><a href=page.php>Ссылка на страницу page.php </a>";
Вывод на веб странице index.php
Переходим на страницу page.php
Алгоритм сессии в PHP используется для авторизации на сайте, для того, чтобы имя пользователя сохранялось в сессии. Напишем простейший пример использования сессий в PHP для авторизации. В скрипте index.php добавим форму, в которой вводится имя пользователя. Подробнее о работе с формами в PHP
<form>
<p> Как вас зовут? </p>
<input type="text" name="name">
<br><br>
<input type="submit" name="sub" value="Отправить!">
</form>
Зарегистрируем переменную сессии, отвечающую за имя пользователя, и присвоим ей значение, полученное из HTML формы
if(isset($_GET['sub'])) {
$_SESSION['name']=$_GET['name'];
}
Теперь мы можем использовать переменную, отвечающую за имя пользователя на всех страницах.
echo "<br /> {$_SESSION['name']}, вы были на страницах сайта ".$_SESSION['counter']." раз. ";
Полный код PHP скрипта index.php
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
$_SESSION['counter']=$_SESSION['counter']+1;
?>
<form>
<p> Как вас зовут? </p>
<input type="text" name="name">
<br><br>
<input type="submit" name="sub" value="Отправить!">
</form>
<?
if(isset($_GET['sub'])) {
$_SESSION['name']=$_GET['name'];
}
echo "<br />Вы на скрипте index.php";
echo "<br /> {$_SESSION['name']}, вы были на страницах сайта ".$_SESSION['counter']." раз. ";
echo "<br /><a href=".$_SERVER['PHP_SELF'].">Обновить эту страницу";
echo "<br /><a href=page.php>Ссылка на страницу page.php </a>";
?>
Полный код скрипта page.php
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
$_SESSION['counter']=$_SESSION['counter']+1;
echo "<br />Вы на скрипте page.php";
echo "<br />{$_SESSION['name']}, вы были на страницах сайта ".$_SESSION['counter']." раз. ";
echo "<br /><a href=".$_SERVER['PHP_SELF'].">Обновить эту страницу";
echo "<br /><a href=index.php>Ссылка на страницу index.php</a>";
?>
Чтобы избежать ошибок, связанных с заголовками header, необходимо сохранять скрипты в кодировке UTF-8 без BOM при помощи редактора Notepad++.
Пример вывода страницы index.php
Пример вывода страницы page.php
Вернуться к курсу по PHP Перейти к теме Скрипт голосования на PHP >>
Полезно : Регистрация домена и размещение сайта на хостинге
Поделиться
Нет комментариев. Ваш будет первым!