Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 зарегистрирована в сессии, иначе возвращается false. 
bool session_unregister(struing $name) 
Эта функция отменяет регистрацию для переменной с именем $name для текущей 
сессии. Иными словами, при завершении сценария все будет выглядеть так, словно 
переменная с именем $name и не была никогда зарегистрирована. Возвращает true, 
если все прошло успешно, и false — в противном случае. 
После вызова функции session_unregister() глобальная переменная, ко- 
торая была "аннулирована", не уничтожается, а сохраняет свое значение. 
void session_unset() 
Функция session_unset(), в отличие от session_unregister(), не только отме- 
няет регистрацию переменных (кстати говоря, всех переменных сессии, а не 
какой-то 
одной), но и уничтожает глобальные переменные, которые были зарегистрированы в 
сессии. 
string session_save_path([string $path]) 
Эта функция возвращает имя каталога, в котором будут помещаться файлы — вре- 
менные хранилища данных сессии. В случае, если указан параметр, как обычно, ак- 

тивное имя каталога будет переустановлено на $path. При этом функция вернет 
пре- 
дыдущий каталог. 
К сожалению, функции, которая бы возвращала список всех зарегистрированных в 
сессии переменных, почему-то нет. Во всяком случае, в PHP версии 4.0.3. 
Установка обработчиков сессии 
До сих пор мы с вами пользовались стандартными обработчиками сессии, которые 
PHP использовал каждый раз, когда нужно было сохранить или загрузить данные из 
временного хранилища. Возможно, они вас не устроят — например, вы захотите хра-

Часть IV. Стандартные функции PHP 352 
нить переменные сессии в базе данных или еще где-то. В этом случае достаточно 
бу- 
дет переопределить обработчики своими собственными функциями, и вот как оно 
делается. 
Обзор обработчиков 
Всего существует 6 функций, связанных с сессиями, которые PHP вызывает в тот 
или 
иной момент работы механизма обработки сессий. Им передаются различные пара- 
метры, необходимые для работы. Сейчас я перечислю все эти функции вместе с их 
описаниями. 
bool handler_open(string $save_path, string $session_name) 
Функция вызывается, когда вызывается session_start(). Обработчик должен 
взять на себя всю работу, связанную с открытием базы данных для группы сессий с 

именем $session_name. В параметре $save_path передается то, что было указано 
при вызове session_save_path() или же путь к файлам-хранилищам данных сес- 
сий по умолчанию. Возможно, если вы используете базу данных, этот параметр 
будет 
бесполезным. 
bool handler_close() 
Этот обработчик вызывается, когда данные сессии уже записаны во временное хра- 
нилище и его нужно закрыть. 
string handler_read(string $sid) 
Вызов обработчика происходит, когда нужно прочитать данные сессии с идентифика- 

тором $sid из временного хранилища. Функция должна возвращать данные сессии в 
специальном формате, который выглядит так: 
имя1=значение1;имя2=значение2;имя3=значение3;...; 
Здесь имяN задает имя очередной переменной, зарегистрированной в сессии, а 
значениеN — результат вызова функции Serialize() для значения этой перемен- 
ной. Например, запись может иметь следующий вид: 
foo|i:1;count|i:10; 
Она говорит о том, что из временного хранилища были прочитаны две целые пере- 
менные, первая из которых равна 1, а вторая — 10. 
string handler_write(string $sid, string $data) 
Этот обработчик предназначен для записи данных сессии с идентификатором $sid во 

временное хранилище — например, открытое ранее обработчиком handler_open(). 
Параметр $data задается в точно таком же формате, который был описан выше. 
Фактически, чаще всего действия этой функции сводятся к записи в базу данных 
строки $data без каких-либо ее изменений. 
bool handler_destroy(string $sid) 

Глава 25. Управление сессиями 353 
Обработчик вызывается, когда сессия с идентификатором $sid должна быть уничто- 
жена. 
bool handler_gc(int $maxlifetime) 
Данный обработчик — особенный. Он вызывается каждый раз при завершении рабо- 
ты сценария. Если пользователь окончательно "покинул" сервер, значит, данные 
сес- 
сии во временном хранилище можно уничтожить. Этим и должна заниматься функ- 
ция handler_gc(). Ей передается в параметрах то время (в секундах), по 
прошествии которого PHP принимает решение о необходимости "почистить перыш- 
ки", или "собрать мусор" (garbage collection) — т. е., это максимальное время 
сущест- 
вования сессии. 
Как же должна работать рассматриваемая функция? Очень просто. Например, е
 
<<-[Весь Текст]
Страница: из 287
 <<-