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

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

<?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

youtube.com/watch?v=7hFivbgIEqk

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

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