Дипломные работы, курсовые проекты на заказ, контрольные работы на заказ

 
Начертательная геометрия Практикум по решению задач Геометрическое черчение Инженерная графика ЕСКД Кратные интегралы Математический анализ Матрицы Пределы Производные Векторная алгебра Интегральное исчисление ТФКП Ядерная физика Электростатика Магнетизм Оптика Информационные технологии
Учебник РНР
НазадВперёд

session_set_save_handler

(PHP 4)

session_set_save_handler - устанавливает пользовательские функции хранения сессии.

Описание

bool session_set_save_handler (string open, string close, string read, string write, string destroy, string gc)

session_set_save_handler() устанавливает пользовательские функции хранения сессии, которые используются для хранения и запрашивания данных, ассоциированных с сессией. Это чаще всего используется, когда метод хранения отличается от методов PHP-сессий. Например, при хранении данных сессии в локальной БД. Возвращает TRUE при успехе, FALSE при неудаче.

Примечание: вы обязаны установить в опции конфигурации session.save_handler значение user в вашем файле php.ini, для того чтобы session_set_save_handler() работала.

Примечание: обработчик "write" не выполняется после закрытия потока вывода. Таким образом, вывод отладочных операторов в обработчике "write" никогда не будет виден в браузере. Если необходим вывод отладки, можно записать его в файл.

В следующем примере показано хранение данных сессии в файле, аналогично обработчику по умолчанию PHP-сессий files. Этот пример можно легко расширить для покрытия хранения БД с использованием вашей любимой машины работы с БД, поддерживаемой в PHP.

Функция read должна всегда возвращать значение, чтобы обработчик сохранения всегда работал, как ожидается. Возвращает пустую строку, если нет данных для чтения. Return-значения из других обработчиков конвертируются в булево выражение. TRUE при успехе, FALSE при неудаче.

Пример 1. session_set_save_handler()
<?php function open ($save_path, $session_name) { global $sess_save_path, 
$sess_session_name; $sess_save_path = $save_path; $sess_session_name = $session_name; 
return(true); } function close() { return(true); } function read ($id) { global 
$sess_save_path, $sess_session_name; $sess_file = "$sess_save_path/sess_$id"; 
if ($fp = @fopen($sess_file, "r")) { $sess_data = fread($fp, filesize($sess_file)); 
return($sess_data); } else { return(""); // Здесь обязана возвращать "". } } function 
write ($id, $sess_data) { global $sess_save_path, $sess_session_name; $sess_file 
= "$sess_save_path/sess_$id"; if ($fp = @fopen($sess_file, "w")) { return(fwrite($fp, 
$sess_data)); } else { return(false); } } function destroy ($id) { global $sess_save_path, 
$sess_session_name; $sess_file = "$sess_save_path/sess_$id"; return(@unlink($sess_file)); 
} /******************************************************************* * ПРЕДУПРЕЖДЕНИЕ 
- Вам понадобится реализовать здесь какой-нибудь * * вариант утилиты уборки мусора. 
* *******************************************************************/ function 
gc ($maxlifetime) { return true; } session_set_save_handler ("open", "close", 
"read", "write", "destroy", "gc"); session_start(); // продолжить нормальное использование 
сессий ?>

НазадОглавление Вперёд
session_set_cookie_paramsВверхsession_start