Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ PHPΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 35

Автор white cat

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ соотносится ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ имя Π³Ρ€ΡƒΠΏΠΏΡ‹? Имя - это всСго лишь ΡΠΎΠ±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСссий (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, для ΠΌΠ½ΠΎΠ³ΠΈΡ… SID), Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… SID Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹. Но Π΅Π³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими SID, располоТСнными логичСски Π² Ρ€Π°Π·Π½Ρ‹Ρ… "пространствах ΠΈΠΌΠ΅Π½".

Π˜Ρ‚Π°ΠΊ, всС SID ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ сСссию Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΌ сцСнарий - нСзависимо ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ сСссии. Имя ΠΆΠ΅ Π·Π°Π΄Π°Π΅Ρ‚ пространство ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ сгруппированы сСссии, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Один ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ сразу нСсколько Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΈΠΌΠ΅Π½ Π³Ρ€ΡƒΠΏΠΏ сСссий).


session_id


Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСссии SID.

Бинтаксис:

string session_id([string $sid])

Если Π·Π°Π΄Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $sid, Ρ‚ΠΎ Ρƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ сСссии измСняСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° $sid.

Π’Ρ‹Π·Π²Π°Π² session_id() Π΄ΠΎ session_start(), ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ любой (Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΊ Ρ‡ΡƒΠΆΠΎΠΉ) сСссии Π½Π° сСрвСрС, Ссли Π·Π½Π°Π΅ΠΌ Π΅Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСссию с ΡƒΠ³ΠΎΠ΄Π½Ρ‹ΠΌ Π½Π°ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΏΡ€ΠΈ этом автоматичСски установив Π΅Π³ΠΎ Π² Cookies ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ


session_is_registered


ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, зарСгистрирована ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Ρ‚Π° ΠΈΠ»ΠΈ иная пСрСмСнная.

Бинтаксис:

bool session_is_registered(string $name)

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ $name Π±Ρ‹Π»Π° зарСгистрирована Π² сСссии, ΠΈΠ½Π°Ρ‡Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false.


session_unregister


ΠžΡ‚ΠΌΠ΅Π½ΡΠ΅Ρ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Бинтаксис:

bool session_unregister(string $name)

Π­Ρ‚Π° функция отмСняСт Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ $name для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии. Или ΠΈΠ½Π°Ρ‡Π΅, ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ сцСнария всС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, словно пСрСмСнная с ΠΈΠΌΠ΅Π½Π΅ΠΌ $name ΠΈ Π½Π΅Π±Ρ‹Π»Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° зарСгистрирована.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈ false - Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_unregister() глобальная пСрСмСнная, которая Π±Ρ‹Π»Π° "Π°Π½Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π°", Π½Π΅ уничтоТаСтся, Π° сохраняСт своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


session_unset


ΠžΡ‚ΠΌΠ΅Π½ΡΠ΅Ρ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Бинтаксис:

void session_unset()

Π­Ρ‚Π° функция, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ session_unregister(), Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отмСняСт Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сСссии, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ), Π½ΠΎ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ зарСгСстрированы Π² сСссии.


session_save_path


Имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· сСссий.

Бинтаксис:

string session_save_path([string $path])

Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Ρ‹ - Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… сСссии. Π’ случаС, Ссли ΡƒΠΊΠ°Π·Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ пСрСустановлСно Π½Π° $path. ΠŸΡ€ΠΈ этом функция Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

ΠžΠ±Π·ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²


handler_open


Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для Π³Ρ€ΡƒΠΏΠΏΡ‹ сСссий с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π΅ΠΉ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ….

Бинтаксис:

bool handler_open(string $save_path, string $session_name)

Ѐункция вызываСтся, ΠΊΠΎΠ³Π΄Π° вызываСтся session_start(). ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя всю Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для Π³Ρ€ΡƒΠΏΠΏΡ‹ сСссий с ΠΈΠΌΠ΅Π½Π΅ΠΌ $session_name. Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ $save_path пСрСдаСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ session_save_path() ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… сСссий ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.


handler_close


Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вызываСтся, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ сСссии записаны Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ.

Бинтаксис:

bool handler_close()


handler_read


Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… сСссии.

Бинтаксис:

string handler_read(string $sid)

Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ сСссии с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ $sid ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ прСдставлСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

имя1=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅1;имя2=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅2;имя3=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅3;...

имяN Π·Π°Π΄Π°Π΅Ρ‚ имя ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, зарСгистрированной Π² сСссии, Π° Π·Π°Π½Ρ‡Π΅Π½ΠΈΠ΅N - Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Serialize() для значСния этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

НапримСр, наша запись ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

foo|i:1;count|i:10;

Она Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ Π΄Π²Π΅ Ρ†Π΅Π»Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, пСрвая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π½Π° 1, Π° вторая - 10.


handler_write


Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… сСссии.

Бинтаксис :string handler_write(string $sid, string $data)

Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для записи Π΄Π°Π½Π½Ρ‹Ρ… сСссии с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ $sid Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ handler_open(). ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $data задаСтся Π² Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ЀактичСски, Ρ‡Π°Ρ‰Π΅ всСго дСйствиС этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сводится ΠΊ записи Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… строки $data Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.


handler_gc


ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Бинтаксис:

bool handler_gc(int $maxlifetime)

Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ вызываСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сцСнария. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΊΠΈΠ½ΡƒΠ» сСрвСр, Π·Π½Π°Ρ‡ΠΈΡ‚, Π΄Π°Π½Π½Ρ‹Π΅ сСссии Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ΡŒ. Π­Ρ‚ΠΈΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ функция handler_gc(). Π•ΠΉ пСрСдаСтся Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ‚ΠΎ врСмя (Π² сСкундах), ΠΏΠΎ ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ PHP ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ нСобходимости ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.


session_set_save_handler


РСгистрация ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠŸΡ€ΠΈ описании ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ ΠΈΡ… ΠΈΠΌΠ΅Π½Π° с прСфиксом handler. На самом Π΄Π΅Π»Π΅, это совсСм Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π”Π°ΠΆΠ΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ - Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° своим ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

Но Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° PHP ΠΈΡ… Π½Π°ΠΉΠ΄Π΅Ρ‚? Π’ΠΎΡ‚ для этого ΠΈ сущСствуСт функция рСгистрации ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², которая Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ, ΠΊΠ°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ наступлСнии Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ события.

Бинтаксис:

void session_set_save_handler($open, $close, $read, $write, $destroy, $gc)

Π­Ρ‚Π° функция рСгистрируСт ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ…, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… сСссии. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ $open содСрТит имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСссии, Π° $close - Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ Π΅Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ. Π’ $read ΠΈ $write Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², соотвСтствСнно, для чтСния ΠΈ записи Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Ѐункция с ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π² $destroy, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ сСссии. НаконСц, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, опрСдСляСмый ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ $gc, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ мусора.

Π­Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСссии, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½Π° просто игнорируСтся.

ΠŸΡ€ΠΎ сСссии ΠΈ Cookies

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: - ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Cookies

Π‘Ρ‹Ρ‚ΡƒΠ΅Ρ‚ распространСнноС ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сСссии Π±Π΅Π· Cookies Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Cookies Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ просто Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для связи Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… сСссии. Но Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρƒ сСбя Π² настройках ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΠΏΡ€ΠΈΠ΅ΠΌ Cookies?

На этот случай Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ PHP ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈΡΡŒ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² сСссии Π½Π΅ Π² Cookies, Π° ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ строку Π±Ρ€ΠΎΡƒΠ·Π΅Ρ€Π°.

РСшСниС: - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ гипСрссылок ΠΈ Ρ„ΠΎΡ€ΠΌ

Π’ PHP сущСствуСт ΠΎΠ΄Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ константа с ΠΈΠΌΠ΅Π½Π΅ΠΌ SID. Она всСгда содСрТит имя Π³Ρ€ΡƒΠΏΠΏΡ‹ сСссии ΠΈ Π΅Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ имя=ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ИмСнно Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ приходят ΠΈΠ· Cookies Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°ΠΌ достаточно просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы SID Π² сцСнарий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ "ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»", Π±ΡƒΠ΄Ρ‚ΠΎ Π±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· Cookies.Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования сСссий Π±Π΅Π· Cookies:

<?php

session_name("testses");

session_start();

session_register("i");

[email protected]$i+1;

?>

<body>

Π’Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ эту страницу

<?=$i?> Ρ€Π°Π·. ΠŸΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° счСтчик ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒΡΡ.<BR>

<A href=sesclick.php?<?=SID?>>НаТмитС для записи Π² счСтчик!</A>

</body>

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Cookies. Если ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, PHP просто Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ константу SID ΠΈ задСйствуСт Cookies.

Но Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ способС Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ нСудобство, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π²Π΅Π·Π΄Π΅ Π² участки ΠΊΠΎΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ <?=SID?>, ΠΈ Ссли Π²Ρ‹ Π³Π΄Π΅Ρ‚ΠΎ пропустили, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ!

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ PHP ΡƒΡ‡Π»ΠΈ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡƒΠ±Π΅Ρ€Π΅Ρ‡ΡŒ нас ΠΎΡ‚ этого. По-этому Ссли Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ гипСрссылкС Π²Ρ‹ ΠΏΠΎ ошибкС пропуститС <?=SID?>, PHP вставит Π΅Π³ΠΎ автоматичСски. ΠŸΡ€ΠΈ этом Π½Π΅ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΠ² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² URL.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

<?session_start()?>

<body>

<A href="php.php">PHP</A>

<A href="php.php?ss=1">PHP - выраТСния</A>