PHP работа с сессиями

PHP работа с сессиями

PHP сессия – это механизм позволяющий передавать данные между скриптами не связанными друг с другом. Каждая сессия имеет свой уникальный номер (SID). SID генерируется индивидуально у каждого пользователя при старте скрипта. Сессии хранятся на стороне сервера и благодаря SID в них можно хранить информацию для конкретного пользователя. Сессии позволяют обмениваться данными между скриптами. Характерным примером данного обмена является скрипт Captcha для проверки ботов, а также авторизация пользователей на сайте.

Рассмотрим пример работы скриптов без использования механизма сессий.

Определим переменную в скрипте test1.php и зададим ей значение. Затем выведем, что у нас в переменной.

<?php
    /**
    * Фаил test1.php 
    * Site: http://bezramok-tlt.ru
    * PHP сессия
    */
    
    $str = 'Привет друг!';
    
    echo $str .'<br>';
    echo '<a href="test2.php">test2.php</a>';
    
?>

Теперь нам нужно чтобы в скрипте test2.php появились эти данные. Попробуем здесь вывести нашу переменную. Как и следовало ожидать, ничего на экране не появилось.

<?php
    /**
    * Фаил test2.php 
    * Site: http://bezramok-tlt.ru
    * PHP сессия
    */
    
    //Выводим данные
    echo $str;
?>

Все правильно ведь между скриптом test1.php и test2.php нет коммуникации для обмена информацией. На помощь нам придет PHP сессия. Чтобы все сработало нужно в начале каждого скрипта запустить сессию session_start();. Тем самым мы создаем коммуникацию между скриптами, чтобы они могли оперировать одинаковыми данными. Чтобы обратиться к данным сессии нужно использовать супер глобальный массив $_SESSION; Немного модифицируем наши скрипты и проверим их работу.

Скрипт test1.php

<?php
    /**
    * Фаил test1.php 
    * Site: http://bezramok-tlt.ru
    * PHP сессия
    */
    
    //Запускаем механизм сессии
    session_start();
    
    $_SESSION['str'] = 'Привет друг!';
    
    echo $_SESSION['str'].'<br>';
    echo '<a href="test2.php">test2.php</a>';
?>

Скрипт test2.php

<?php
    /**
    * Фаил test2.php 
    * Site: http://bezramok-tlt.ru
    * PHP сессия
    */
    
    //Запускаем механизм сессии
    session_start();
    
    //Выводим данные
    echo $_SESSION['str']   ;
?>

Все работает, в обоих скриптах выводится одна и таже информация.


Теги:

Поддержи проект:

  • ...
    NiceWeb 21:24:59 05/02/2016
    Автор статей не зря старается. Делайте и дальше, [b]обязательно[/b]!!!  Рекомендую написать на тему безопасности скриптов - благодатная тема, целый огромный раздел получится. Очень мало внимания этому уделяется... СПасибо большое за статьи!
  • Администрация
    Администрация 14:24:06 09/02/2016

    И Вам спасибо.

Форма обратной связи
captcha