Несколько сессий одновременно

Следующий пример демонстрирует работу с несколькими сессиями одновременно.

<?php
$currentSessions = $_COOKIE;

function switchToSession($sessionName = 'PHPSESSID')
{
global $currentSessions;
session_name($sessionName);
$currentSessionId = '';
if (array_key_exists($sessionName, $currentSessions)){
$currentSessionId = trim($currentSessions[$sessionName]);
if ($currentSessionId !== '') {
session_id($currentSessionId);
}

}
session_start();
if ($currentSessionId === '') {
session_regenerate_id();
}
$currentSessions[$sessionName] = session_id();
}

switchToSession();
$_SESSION['lnn'] = 'default_'.microtime();
session_write_close();

switchToSession('lebnik1');
$_SESSION['lnn'] = '1_'.microtime();
session_write_close();

switchToSession('lebnik2');
$_SESSION['lnn'] = '2_'.microtime();
session_write_close();

switchToSession('lebnik1');
print_r($_SESSION);
session_write_close();

switchToSession('lebnik2');
print_r($_SESSION);
session_write_close();

Рекомендованные параметры при работе с сессиями

ini_set('session.use_cookies', 1);// идентификаторы сессий будут храниться в куках
ini_set('session.use_only_cookie', 1);// предотвращаем атаки с использованием идентификатора сессии, размещенного в URL
ini_set('session.cookie_lifetime', 0);// пользователя не разлогинет до тех пор, пока он не закроет браузер
ini_set('session.hash_function', "sha256");// более сложный сессионный ID
ini_set('session.use_strict_mode', 1);// запрещаем использовать неинициализированные идентификаторы сессий
ini_set('session.use_trans_sid', 0);// отключаем использование передачи идентификатора сессии в URL
ini_set('session.cookie_httponly', 1);// теперь cookies сессий не будут доступны через скриптовые языки, например JavaScript

session.gc_maxlifetime - настройка для удаления устаревших идентификаторов сессий. Полагаться на эту опцию категорически не рекомендуется. Вы должны управлять жизненным циклом сессии самостоятельно. Сессионный сборщик мусора GC (garbage collection) лучше использовать с помощью session_gc(). Функцию session_gc() лучше всего запускать через планировщик, например, cron на *nix-системах.

Или можете более подробно почитать: 1 - 2

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » PHP »