Сессии в PHP

25 мая 2020 - Администратор

Сессии в 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
 скрипт счетчика на 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++.
 сохранение php скрипта в кодировке utf-8 без BOM
Пример вывода страницы index.php
 пример страницы авторизации
Пример вывода страницы page.php

пример сессий в php

Вернуться к курсу по PHP     Перейти к теме Скрипт голосования на PHP >>

Полезно : Регистрация домена и размещение сайта на хостинге

Поделиться 

 
 
Комментарии (0)

Нет комментариев. Ваш будет первым!