Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

ВрСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ.
Бтолкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ убийства сСссий Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌ срока. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽ

ini_set(‘session.gc_maxlifetime’, 120960);
ini_set(‘session.cookie_lifetime’, 120960);

А сСссия убиваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 30 ΠΌΠΈΠ½ΡƒΡ‚.
Π“ΡƒΠ³Π»ΠΈΠ» Π΄ΠΎΠ»Π³ΠΎ ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. НС Π½Π°Π³ΡƒΠ³Π»ΠΈΠ» Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹.
Π‘Ρ‚Π°Π» Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ°Π½ΡƒΠ°Π» ΠΈ нашСл ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Оказалось всё просто Π΄ΠΎ одурСния.

Π‘Π°ΠΉΡ‚ хостится Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ хостингС ΠΈ всС сСссии хранятся Π² /tmp. БоотвСтствСнно скрипты Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтов чистят всС сСссии ΠΏΠΎ установлСнному Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ 30 ΠΌΠΈΠ½ΡƒΡ‚.
Π˜Ρ‚Π°ΠΊ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ мСсто хранСния сСссий β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ-Ρ‚ΠΎ ΠΈ всСго.

Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ сСссий нСльзя Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ· Π²Π½Π΅.

ΠœΠΎΠΆΠ΅Ρ‚ информация ΠΈ Π½Π΅ Π½ΠΎΠ²Π°, Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ я Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ смог Π½Π°ΠΉΡ‚ΠΈ Π² Π³ΡƒΠ³Π»Π΅, Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» Π·Π°ΠΏΠΎΡΡ‚ΠΈΡ‚ΡŒ. Π’Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ пригодится.

UPD:
Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС сСссии ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Π½Π°Ρ‡Π°Π»ΠΎ. Когда запускаСтся скрипт β€” php Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ настройку Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ (ΠΈ вСроятности запуска сборщика мусора) ΠΈ запускаСт сборщик мусора. Если сборщик мусора наткнулся Π½Π° сСссию, которая ΠΏΡ€ΠΎΠΆΠΈΠ»Π° большС, Ρ‡Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² настройках β€” ΠΎΠ½Π° удаляСтся. УдаляСтся Ρ„Π°ΠΉΠ» с сСссиСй, Π° ΠΊΡƒΠΊΠ° Ρƒ ΡŽΠ·Π΅Ρ€Π°, СстСствСнно, остаётся. БоотвСтствСнно, Ссли запустится любой скипт с настройкой Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сСссии Π² 30 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ ΠΏΡ€ΠΈ этом ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ сСссии Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ расмСщаСт ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΎΠΉ скрипт с большим Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ β€” ΠΎΠ½ ΡƒΠ΄Π°Π»ΠΈΡ‚ Π’Π‘Π• сСссии, Π΄Π°ΠΆΠ΅ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΆΠΈΡ‚ΡŒ большС. ИмСнно для этого Π½Π°Π΄ΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссий Π² PHP

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Π±-сайтов основываСтся Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ сСссиями. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ бСзопасному сайту, ΠΎΠ½ прСдоставляСт ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ пароля. Π’Π΅Π±-сСрвСр Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прСдставлСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ вошСл Π² систСму ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚ страницы ΠΊ страницС. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСссий позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ хотят Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ дСйствиС ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΠΎΠ²ΠΎΠΉ страницС.

Π’ сущности, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСссиСй Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя соСдинСн Ρ‚ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ» Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ. Но, ΠΊ соТалСнию, сСссии стали ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ мишСнью для Ρ…Π°ΠΊΠ΅Ρ€ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π΅Π±-сСрвСру Π±Π΅Π· нСобходимости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности.

ПослС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Π΅Π±-сСрвСр прСдоставляСт Π΅ΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСссии. Π­Ρ‚ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ хранится Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ подставляСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подлинности. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ процСссов Π²Π²ΠΎΠ΄Π° Π»ΠΎΠ³ΠΈΠ½Π°/пароля. ВсС это происходит Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ Π½Π΅ доставляСт дискомфорта ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ссли Π±Ρ‹ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ имя ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° просматривали Π½ΠΎΠ²ΡƒΡŽ страницу!

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ всС извСстныС ΠΌΠ½Π΅ способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии Π² PHP.

ИспользованиС cookie

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вся информация ΠΎ сСссии, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ID, пСрСдаСтся Π² cookie. Но Ρ‚Π°ΠΊ Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ всСгда. НСкоторыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ cookie Π² своих Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСссии Π² URL.

php_flag session.use_only_cookies on

ИспользованиС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ

Если Π½Π° вашСм сайтС Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ информация, такая ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ (ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ Sony), слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSL3.0 ΠΈΠ»ΠΈ TSL1.0 ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅. Для этого ΠΏΡ€ΠΈ установкС cookie слСдуСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ true для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° secure.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ Π½Π΅ бСзопасный, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ хранится Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкста Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ сСссии. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ md5-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования сСссии с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°), слСдуСт ввСсти ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ поля HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° user-agent:

Π‘Ρ€ΠΎΠΊ дСйствия сСссии

# ВрСмя ΠΆΠΈΠ·Π½ΠΈ сСссии Π² сСкундах
php_value session.gc_maxlifetime 3600
# ВрСмя ΠΆΠΈΠ·Π½ΠΈ ΠΊΡƒΠΊΠΈ Π² сСкундах
php_value session.cookie_lifetime 3600

ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎ IP-адрСсу

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуациях (Π½Π΅ всСгда) слСдуСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ привязку ΠΏΠΎ IP-адрСсу. Π’ основном ΠΊΠΎΠ³Π΄Π° количСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ статичныС IP. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΏΠΎ списку Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… IP-адрСсов,

Π»ΠΈΠ±ΠΎ ΠΏΠΎ IP-адрСсу для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для статичных IP):

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Π·Π»ΠΎΠΌΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. МоТно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ максимально ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ этот Π²Π·Π»ΠΎΠΌ Π»ΡŽΠ±Ρ‹ΠΌΠΈ извСстными способами. Однако слСдуСт Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ своих Π»Π΅Π³Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΈΠΌ Тизнь Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Настройка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сСссий Π² PHP

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ способы установки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ сСссий. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

ΠŸΠ΅Ρ€Π΅Π΄ настройкой, стоит ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС. Π•ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

1. На сСрвСрС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ php

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ сСссиям. Нас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚:

Π”Π°Π½Π½Ρ‹Π΅ значСния β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. cookie_lifetime => 0 Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ дСйствии Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΡƒΠΊΠΈ Π΄ΠΎ закрытия Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ссли Π·Π°Π΄Π°Ρ‚ΡŒ этому ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, сСссия Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ сСансС, поэтому Π»ΡƒΡ‡ΡˆΠ΅ Π΅Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ноль.

2. C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ php-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ini_get

Настройка сСссий Π½Π° Π²Π΅Π±-сСрвСрС

ВыполняСтся ΠΏΡƒΡ‚Π΅ΠΌ настройки Ρ„Π°ΠΉΠ»Π° php.ini. Π”Π°Π½Π½Ρ‹ΠΉ способ ΡƒΠ΄ΠΎΠ±Π΅Π½, Ссли ΠΌΡ‹ являСмся администратором Π²Π΅Π±-сСрвСра, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ссли Π΅ΡΡ‚ΡŒ гарантия, Ρ‡Ρ‚ΠΎ общая настройка сСссий Π½Π΅ повлияСт Π½Π° Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ всСх Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° Π΄Π°Π½Π½ΠΎΠΌ сСрвСрС.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ php.ini. Π•Π³ΠΎ располоТСниС зависит ΠΎΡ‚ сборки Linux. Π’ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ сам Ρ„Π°ΠΉΠ»:

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСмах, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ubuntu ΠΈΠ»ΠΈ Debian для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ срСды ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π° создаСтся свой php.ini Ρ„Π°ΠΉΠ», Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии PHP. НапримСр, ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ /etc/php/7.4/fpm/php.ini находится Ρ„Π°ΠΉΠ» для php-fpm для PHP вСрсии 7.4. Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

И Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

session.gc_maxlifetime = 86400
session.cookie_lifetime = 0

* Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ gc_maxlifetime ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° врСмСня Π² сСкундах, послС ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹; cookie_lifetime β€” врСмя ΠΆΠΈΠ·Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² cookies; 86400 β€” 24 часа Π² сСкундах.
* Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ gc_maxlifetime Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, дСйствиС сСссий Π±ΡƒΠ΄Π΅Ρ‚ бСсконСчным. Π­Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ стоит Π΄Π΅Π»Π°Ρ‚ΡŒ β€” ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ бСзопасности сСрвСра.

ПослС настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ сСрвСр, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ PHP.

systemctl restart apache2 || systemctl restart httpd

* Π² вСрсиях Linux Π±Π΅Π· systemd ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ service apache2 restart ΠΈΠ»ΠΈ service httpd restart.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ FastCGI (PHP-FPM).

systemctl restart php-fpm

б) для Ubuntu или Debian:

systemctl restart php7.4-fpm

* Π³Π΄Π΅ 7.4 β€” вСрсия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ PHP.

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» позволяСт Π²Π΅Π±-мастСру ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ настройками Π²Π΅Π±-сСрвСра. Для Π΅Π³ΠΎ рСдактирования Π½ΡƒΠΆΠ΅Π½ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ сайта. Бпособ Π½Π΅ сработаСт, Ссли Π² качСствС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° PHP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Apache, Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, NGINX + PHP-FPM. Π₯отя, Ρ‚ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ способ (ΠΎ Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅).

php_value session.gc_maxlifetime 86400
php_value session.cookie_lifetime 0

* ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π΅ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ настройки Ρ‡Π΅Ρ€Π΅Π· php.ini.

Как Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ сработаСт, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Apache. Однако настройку ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π° сСрвСрС (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Ρƒ нас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ доступ).

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» настройки Π²Π΅Π±-сСрвСра, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² php-fpm:

php_value[session.gc_maxlifetime] = 86400
php_value[session.cookie_lifetime] = 0

ПослС пСрСзапускаСм сСрвис:

systemctl restart php-fpm || service php-fpm restart

Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΊΠΎΠ΄Π΅ прилоТСния

Бпособ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π½Ρ‹Π΅ страницы ΠΏΠΎΡ€Ρ‚Π°Π»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Для этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ PHP-функциями ini_set ΠΈ session_set_cookie_params, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΎ открытия сСсии (session_start).

Установка сСссии Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

НСкоторыС прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ настройки. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, Π·Π°Π΄Π°Ρ‚ΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния свои настройки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° настройку сСссии Π² CMS Битрикс.

Как автоматичСски ΠΏΡ€ΠΎΠ΄Π»Π΅Π²Π°Ρ‚ΡŒ сСссии

Если сСссия выдаСтся Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΈ заканчиваСтся Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сСанса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π“ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ссли врСмя дСйствия сСссии Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΠ΄Π»Π΅Π²Π°Ρ‚ΡŒΡΡ, Ссли ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŒ обновляСт страницу. Для этого сущСствуСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ cookie_lifetime, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π·Π°Π΄Π°Π²Π°Π»ΠΈ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ 0.

Если ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ cookie_lifetime 86400, Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· 24 часа сСссия прСрвСтся. Π­Ρ‚ΠΎ Π½Π΅ всСгда ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ сСссии, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ php-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ session_destroy().

ΠŸΡƒΡ‚ΡŒ хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² сСссий

ΠœΠ΅ΡΡ‚ΠΎ хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² сСссий задаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ session.save_path Ρ‚Π°ΠΊΠΆΠ΅, Ρ‚Π°ΠΊ врСмя ΠΆΠΈΠ·Π½ΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡƒΡ‚ΡŒ /var/lib/php/sessions.

Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Ссли Ρƒ Π²Π΅Π±-сСрвСра Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° запись Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ нСвозмоТности Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сСссии, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

PHP β€” Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

ЗдравствуйтС, ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π±Π»ΠΎΠ³Π° LifeExample, сСгодня Ρ…ΠΎΡ‡Ρƒ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ ΠΈ Π² Ρ‚ΠΎΠΆΠ΅ врСмя ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π»ΡŽΠ±ΠΎΠΌΡƒ PHP ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ осущСствляСтся Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями Π² PHP.

Π’ PHP, Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ нахоТдСния Π΅Π³ΠΎ Π½Π° сайтС. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ваш сайт, Ρ‚ΠΎ для Π½Π΅Π³ΠΎ заводится собствСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (сСссия) Π½Π° вашСм сСрвСрС, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ».

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, тСкстовый Ρ„Π°ΠΉΠ» Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΡƒΡ…ΠΎΠ΄Π° Π΅Π³ΠΎ с сайта, поэтому ΠΈ называСтся сСссиСй.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π΅Ρ‰Π΅ хранится Π½Π° сСрвСрС послС покидания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ сайта, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ присвоСн этому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ вСрнСтся.

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с сСссиями PHP

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСссию Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠΎΠ΄Π΅ формирования страницы, Π΄ΠΎ любого Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Данная функция создаст Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π° сСрвСрС для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ выдаст Π΅ΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ session_id, ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΅Π³ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ сСссию ΠΏΠΎ Ρ€Π°Π½Π΅Π΅ созданному ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ.

Π‘Π°ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² ΠΊΡƒΠΊΠ°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π΅Π³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅:

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ сСссию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ session_start(), ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΠΏΠ΅Ρ€Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ массивом $_SESSION, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½Π΅ΠΊΠΈΠΌ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ сСссий.

Π’ΠΎΠΎΠ±Ρ‰Π΅ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² PHP Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями Π±Ρ‹Π»Π° понятна ΠΈ проста, Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ сущСствовании Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° сСрвСрС, ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ массивом $_SESSION, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ врСмя, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ страницы сайта ΠΈΠ»ΠΈ вовсС ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ Π΅Π³ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСссиями Π² PHP

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Ссли Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ„Π»Π°Π³ $fillSession, Ρ‚ΠΎ сСссия заполняСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ самыми Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ – строки, числа, массивы, значСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ функциями.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄ Π½Π° страницС – ΠΎΠ½ Π½Π΅ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π²Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ. Π—Π°Ρ‚Π΅ΠΌ присвойтС $fillSession = true ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ страницу, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ содСрТаниС массива $_SESSION.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ $fillSession = false, ΠΈ снова ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ страницу.

Массив наполнился ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ снова ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅ β€” Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ!

Π₯Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ° Π½Π΅ истСчСт установлСнноС врСмя сСссии ΠΈΠ»ΠΈ Π²Ρ‹ Π»ΠΈΡ‡Π½ΠΎ Π½Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚Π΅ сСссию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ:

ВрСмя ΠΆΠΈΠ·Π½ΠΈ сСссии Π² PHP

ВрСмя ΠΆΠΈΠ·Π½ΠΈ сСссии Π² PHP ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ нСсколькими способами:

1. Π―Π²Π½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ количСство сСкунд хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² сСссий Π² ΠΊΠΎΠ΄Π΅ PHP:

2. Π—Π°Π΄Π°Ρ‚ΡŒ значСния для Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² Π² php.ini:

Для Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСссии

Π’ PHP Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями часто сопровоТдаСтся Π·Π°Π΄Π°Ρ‡Π΅ΠΉ – сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° сайтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Но ΠΏΠΎΠΌΠΈΠΌΠΎ этого Π² сСссии ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π½Π° вашСм сайтС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π°ΠΊΠΆΠ΅ сСссия ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠžΠΏΠ°ΡΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹

Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ большоС, ΠΈ обильно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сСссии, Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ массив $_SESSION доступСн для любой Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, работая с сайтом Π² Π΄Π²ΡƒΡ… Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, с ΡƒΠΆΠ΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π±Π°Π³ΠΈ.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСссиями

Π˜Π·ΡƒΡ‡ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ php, Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями… Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ Π² Ρ€Π°Π΄ΠΎΡΡ‚ΡŒ :-). Π¨ΡƒΡ‡Ρƒ, Π½Π° самом Π΄Π΅Π»Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π΄ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счСту ΠΊΡ€ΠΎΠΌΠ΅ session_start(); ΠΈ session_destroy(); Π²Π°ΠΌ Ρ€Π΅Π΄ΠΊΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ понадобится.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ β€œphp Ρ€Π°Π±ΠΎΡ‚Π° с сСссиями” я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ вас с основами программирования ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π» практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€. НадСюсь Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ понятно. 😉

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° рассылку ΠΏΠΎ E-mail ΠΈΠ»ΠΈ RSS Π»Π΅Π½Ρ‚Ρƒ Π±Π»ΠΎΠ³Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ использования сСссий Π² PHP

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии
ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ, ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ сообщСство.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ Π·Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ рСсурс. НС Ρ€Π°Π· Π½Π°Ρ…ΠΎΠ΄ΠΈΠ» здСсь мноТСство интСрСсных ΠΈΠ΄Π΅ΠΉ ΠΈ практичСских совСтов.

ЦСль этой ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” ΠΎΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ использования сСссий Π² PHP. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ докумСнтация ΠΏΠΎ PHP ΠΈ масса ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΈ данная ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство. Она ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡŒΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСссиями ΠΈ ΠΎΠ³Ρ€Π°Π΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ‚Ρ€Π°Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π‘Π°ΠΌΡ‹ΠΌ распространСнным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ использования сСссий являСтся, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, авторизация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. НачнСм с самой Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния Π½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

(Π’ цСлях экономии мСста ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ограничимся Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самими функциями Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСссиями, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ здСсь ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с красивой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ классов, ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ошибок ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΡˆΡ‚ΡƒΠΊΠ°ΠΌΠΈ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания ΠΎ сСссиях PHP Ρƒ читатСля ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ, поэтому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ session_start() ΠΈ session_destroy() ΠΎΡΠ²Π΅Ρ‰Π°Ρ‚ΡŒ здСсь Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Π—Π°Π΄Π°Ρ‡ΠΈ вСрстки Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ…ΠΎΠ΄Π° ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ относятся ΠΊ Ρ‚Π΅ΠΌΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, поэтому ΠΈΡ… ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ опустим. Напомню Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запросС, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСссионной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (с ΠΈΠΌΠ΅Π½Π΅ΠΌ userid, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ доступСн Π²ΠΎ всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… запросах Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΆΠΈΠ·Π½ΠΈ сСссии. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ startSession(). Если функция Π²Π΅Ρ€Π½ΡƒΠ»Π° FALSE β€” ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ…ΠΎΠ΄Π°. Если функция Π²Π΅Ρ€Π½ΡƒΠ»Π° TRUE, ΠΈ сСссионная пСрСмСнная, содСрТащая ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π² нашСм случаС β€” userid), сущСствуСт β€” ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ страницу Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ошибок см. Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 2013-06-07 Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΎ сСссионных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…).

Пока всС понятно. Вопросы Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° трСбуСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (session timeout), Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ сСссии ΠΎΡ‚ нСсанкционированного использования. Об этом ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π½ΠΈΠΆΠ΅.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ встроСнными срСдствами PHP

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² всСвозмоТных консолСй для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ β€” автоматичСскоС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сСанса Π² случаС отсутствия активности со стороны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнных возмоТностСй PHP. (Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ отличаСтся особой Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ рассмотрим Π΅Π³ΠΎ для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹).

НСмного пояснСний. Как извСстно, PHP опрСдСляСт, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠΌΠ΅Π½Π½ΠΎ сСссию Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΡƒΠΊΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ запроса. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΆΠ΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ этот ΠΊΡƒΠΊΠΈ ΠΎΡ‚ сСрвСра, ΠΊΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ функция session_start(). Если врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΊΡƒΠΊΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ истСкло, ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π² запросС, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ PHP Π½Π΅ смоТСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ сСссию Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΈ расцСнит это ΠΊΠ°ΠΊ созданиС Π½ΠΎΠ²ΠΎΠΉ сСссии. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ настроСк PHP session.gc_maxlifetime, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π·Π°Π΄Π°Π΅Ρ‚ врСмя ΠΆΠΈΠ·Π½ΠΈ PHP-сСссии ΠΈ контролируСтся сСрвСром. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ сСссии ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (здСсь рассматриваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° сСссий Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠ°ΠΊ самый распространСнный ΠΈ установлСнный ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² PHP Π²Π°Ρ€ΠΈΠ°Π½Ρ‚).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π—Π΄Π΅ΡΡŒ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ session.gc_maxlifetime дСйствуСт Π½Π° всС сСссии Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ процСсса PHP). На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ссли Π½Π° сСрвСрС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСсколько сайтов, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ установка этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· сайтов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π³ΠΎ установкС ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтов. Π’ΠΎ ΠΆΠ΅ касаСтся ΠΈ shared-хостинга. Для избСТания ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ сСссий для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сайта Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра. Установка ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ сСссий производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° session.save_path Π² Ρ„Π°ΠΉΠ»Π΅ настроСк php.ini, ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ini_set(). ПослС этого сСссии ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сайта Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ session.gc_maxlifetime, установлСнный Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· сайтов, Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π΅Π³ΠΎ сСссии. ΠœΡ‹ Π½Π΅ станСм Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ этот случай ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Ρƒ нас Π² запасС Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ контроля отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСссионных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Казалось Π±Ρ‹, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈ всСй своСй простотС (всСго ΠΏΠ°Ρ€Ρƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… строк ΠΊΠΎΠ΄Π°) Π΄Π°Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Но Ρ‡Ρ‚ΠΎ, Ссли Π½Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запрос ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ? НапримСр, Π½Π° страницС установлСн Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСриодичСски выполняСт AJAX-запрос Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΎΡ‚ сСрвСра. Π’Π°ΠΊΠΎΠΉ запрос нСльзя Ρ€Π°ΡΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ автоматичСскоС ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ сСссии являСтся Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС. Но ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ PHP обновляСт врСмя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° сСссии автоматичСски ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_start(), Π° Π·Π½Π°Ρ‡ΠΈΡ‚ любой запрос ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΡ€ΠΎΠ΄Π»Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ сСссии, ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ наступит Π½ΠΈΠΊΠΎΠ³Π΄Π°. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, послСднСС ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΎ тонкостях Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° session.gc_maxlifetime ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ слишком Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΈ слоТным Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ откаТСмся ΠΎΡ‚ использования встроСнных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² PHP ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ нСсколько Π½ΠΎΠ²Ρ‹Ρ… сСссионных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π½Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sessionStart()

Π’ коммСнтариях ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ FALSE Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ понимания ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ошибки, ΠΈ это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ справСдливо. Π― Π½Π΅ стал ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ здСсь ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок (объСм ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ Ρ‚Π°ΠΊ Π½Π΅ малСнький), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π½Π΅ относится Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ Ρ‚Π΅ΠΌΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Но учитывая ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, внСсу ΡΡΠ½ΠΎΡΡ‚ΡŒ.

Как Π²ΠΈΠ΄Π½ΠΎ, функция sessionStart ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ FALSE Π² Π΄Π²ΡƒΡ… случаях. Π›ΠΈΠ±ΠΎ сСссию Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ошибок сСрвСра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ настройки сСссий Π² php.ini), Π»ΠΈΠ±ΠΎ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии истСкло. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° страницу с ошибкой ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° сСрвСрС, ΠΈ Ρ„ΠΎΡ€ΠΌΠΎΠΉ обращСния Π² слуТбу ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ пСрСвСсти ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ…ΠΎΠ΄Π° ΠΈ вывСсти Π² Π½Π΅ΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ врСмя сСссии истСкло. Для этого Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти ΠΊΠΎΠ΄Ρ‹ ошибок ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ вмСсто FALSE ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Π° Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π΄Π°ΠΆΠ΅ Ссли сСссия Π½Π° сСрвСрС ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ сущСствуСт, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΉ, Ссли Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ истСк. И это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ врСмя ΠΆΠΈΠ·Π½ΠΈ сСссий установлСно Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… настройках PHP.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: А Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±Ρ‹Π» Π·Π°ΠΊΡ€Ρ‹Ρ‚, ΠΈ ΠΊΡƒΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ сСссии Π±Ρ‹Π» автоматичСски ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½? Запрос ΠΊ сСрвСру ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΡƒΠΊΠΈ сСссии, ΠΈ сСрвСр Π½Π΅ смоТСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ сСссию ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ отсутствия активности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Для нас это Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ созданию Π½ΠΎΠ²ΠΎΠΉ сСссии ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ влияСт Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. Но Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ справСдливый вопрос β€” Π° ΠΊΡ‚ΠΎ ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ сСссию, Ссли Π΄ΠΎ сих ΠΏΠΎΡ€ Π΅Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°Π»ΠΈ ΠΌΡ‹ ΠΏΠΎ истСчСнии Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°? Или ΠΎΠ½Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ сСссий Π²Π΅Ρ‡Π½ΠΎ? Для очистки старых сСссий Π² PHP сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ garbage collection. Он запускаСтся Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ запроса ΠΊ сСрвСру ΠΈ чистит всС старыС сСссии Π½Π° основании Π΄Π°Ρ‚Ρ‹ послСднСго измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ² сСссий. Но запуск ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° garbage collection происходит Π½Π΅ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС ΠΊ сСрвСру. Частота (Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ) запуска опрСдСляСтся двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ настроСк session.gc_probability ΠΈ session.gc_divisor. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚ дСлСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ запуска ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° garbage collection. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ очистки сСссий запускался ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС ΠΊ сСврСру, эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Ρ€Π°Π²Π½Ρ‹Π΅ значСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«1Β». Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ чистоту ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° сСссий, Π½ΠΎ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, являСтся слишком Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ для сСрвСра. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² production-систСмах ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ session.gc_divisor, Ρ€Π°Π²Π½ΠΎΠ΅ 1000, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ garbage collection Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ с Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ 1/1000. Если Π²Ρ‹ поэкспСримСнтируСтС с этими настройками Π² своСм Ρ„Π°ΠΉΠ»Π΅ php.ini, Ρ‚ΠΎ смоТСтС Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² описанном Π²Ρ‹ΡˆΠ΅ случаС, ΠΊΠΎΠ³Π΄Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ закрываСтся ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ всС свои ΠΊΡƒΠΊΠΈ, Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ сСссий ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя всС Π΅Ρ‰Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ старыС сСссии. Но это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ вас Π²ΠΎΠ»Π½ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚.ΠΊ. ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, это Π½ΠΈ ΠΊΠΎΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ влияСт Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ нашСго ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°.

ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ зависания скриптов ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° сСссии

Π’ коммСнтариях подняли вопрос ΠΎ зависании ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ скриптов ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° сСссии (ΠΊΠ°ΠΊ самый яркий Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” long poll).

Для Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ зависит ΠΎΡ‚ загруТСнности сСрвСра ΠΈΠ»ΠΈ количСства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‡Π΅ΠΌ большС запросов, Ρ‚Π΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ скрипты. Но это коссвСнная Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ сСссии, ΠΊΠΎΠ³Π΄Π° сСрвСру ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ нСсколько запросов ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… long poll, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ β€” ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ запросы). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ запрос пытаСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρƒ сСссии, ΠΈ Ссли ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ запрос Π½Π΅ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» Ρ„Π°ΠΉΠ», Ρ‚ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ.

Для свСдСния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² сСссий ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ сСссию ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_write_close() сразу послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС дСйствия с сСссионными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ слСдуСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСссионных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… всС подряд ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Π½Π° всСм протяТСнии выполнСния скрипта. А Ссли ΠΈ Π½Π°Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСссионных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… сразу ΠΏΡ€ΠΈ стартС сСссии, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ сСссию (имССтся Π²Π²ΠΈΠ΄Ρƒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ сСссии с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_write_close, Π° Π½Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ session_destroy).

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сразу послС открытия сСссии, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅Π΅ ΠΆΠΈΠ·Π½ΠΈ ΠΈ сущСствования Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ сСссионныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Ссли Ρ‚Π°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚), послС Ρ‡Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ сСссию с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° session_write_close() ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ long poll ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ запрос.

Π—Π°Ρ‰ΠΈΡ‚Π° сСссий ΠΎΡ‚ нСсанкционированного использования

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ сСбС ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Один ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ цСпляСт троян, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Ρ€Π°Π±ΠΈΡ‚ ΠΊΡƒΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится наша сСссия) ΠΈ отправляСт Π΅Π³ΠΎ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ email. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΡƒΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ запроса ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ нашСго Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π‘Π΅Ρ€Π²Π΅Ρ€ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ этот запрос, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° IP-адрСса, такая Π°Ρ‚Π°ΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌΡƒ Π²Π·Π»ΠΎΠΌΡƒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ со всСми Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ послСдствиями.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ имя ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСссии всСгда ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π½Π° всС врСмя ΠΆΠΈΠ·Π½ΠΈ сСссии, ΠΈ Ссли ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ бСспрСпятствСнно ΡΠ»Π°Ρ‚ΡŒ запросы ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (СстСствСнно, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ этой сСссии). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π½Π΅ самый распространСнный Π²ΠΈΠ΄ Π°Ρ‚Π°ΠΊ, Π½ΠΎ тСорСтичСски всС выглядит Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ, особСнно учитывая, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ трояну Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€Π°Π²Π° администратора, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Ρ€Π°Π±ΠΈΡ‚ΡŒ ΠΊΡƒΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Как ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°? ΠžΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ² врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии ΠΈ пСриодичСски измСняя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ сСссии. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ имя сСссии, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удаляя ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΈ создавая Π½ΠΎΠ²ΡƒΡŽ сСссию, копируя Π² Π½Π΅Π΅ всС сСссионныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· старой. Но Π½Π° ΡΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° это Π½Π΅ влияСт, поэтому для простоты ограничимся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ сСссии.

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ мСньшС врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии, Ρ‚Π΅ΠΌ мСньшС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΡƒΠΊΠΈ для ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ идСальном случаС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ‡ΡƒΠΆΠΎΠΉ сСссии. Но ΠΌΡ‹ рассмотрим ΠΎΠ±Ρ‰ΠΈΠΉ случай, ΠΊΠΎΠ³Π΄Π° врСмя Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии устанавливаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ.

(ΠžΠΏΡƒΡΡ‚ΠΈΠΌ Ρ‚Ρƒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, которая ΡƒΠΆΠ΅ рассмотрСна).

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ сСссии (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ происходит Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ), ΠΌΡ‹ устанавливаСм ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ starttime, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽ для нас врСмя послСднСй Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии, Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сСрвСра. Π”Π°Π»Π΅Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС ΠΌΡ‹ провСряСм, Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π»ΠΈ достаточно Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (idLifetime) с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΈ Ссли ΠΏΡ€ΠΎΡˆΠ»ΠΎ β€” Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ установлСнного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉ ΠΊΡƒΠΊΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π΅ успССт ΠΈΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΠ΄Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ запрос Π±ΡƒΠ΄Π΅Ρ‚ расцСнСн сСрвСром ΠΊΠ°ΠΊ Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, ΠΈ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π½Π° страницу Π²Ρ…ΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Новый ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСссии ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΠΊΡƒΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_regenerate_id(), которая отправляСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΡƒΠΊΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ session_start(), поэтому Π½Π°ΠΌ Π½Π΅Ρ‚ нСобходимости ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΡƒΠΊΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ максимально ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡ‚ΡŒ наши сСссии, достаточно ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ вынСсти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ session_regenerate_id() Π·Π° скобки ΠΈ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС. (Π― Π½Π΅ провСрял влияниС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π½Π° быстродСйствиС, ΠΈ ΠΌΠΎΠ³Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция session_regenerate_id(true) выполняСт ΠΏΠΎ сути всСго 4 дСйствия: гСнСрация Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, созданиС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° с ΠΊΡƒΠΊΠΈ сСссии, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого ΠΈ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° сСссии).

ЛиричСскоС отступлСниС: Если троян окаТСтся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΌΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΡƒΠΊΠΈ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ, Π° сам ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ поддСльного запроса сразу ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΡƒΠΊΠΈ, описанный Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, скорСС всСго, Π½Π΅ смоТСт Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ получСния трояном ΠΊΡƒΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ поддСльного запроса практичСски Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹, ΠΈ Π²Π΅Π»ΠΈΠΊΠ° Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° сСссии.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ПослСдняя Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π° этапС тСстирования, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ это Π² своСм любимом Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь доступный арсСнал ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСсколько экзСмпляров Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎΒ».

Π’ Π½Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π½Π΅ Π·Π°Π΄Π°Π²Π°Π»ΠΈ явно имя сСссии, поэтому использовалось имя, установлСнноС Π² PHP ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (PHPSESSID). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ всС сСссии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создавались Π½Π°ΠΌΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€, отправляли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΊΡƒΠΊΠΈ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ PHPSESSID. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли имя ΠΊΡƒΠΊΠΈ всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅, Ρ‚ΠΎ Π½Π΅Ρ‚ возмоТности Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ сСссии с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Но Ссли Π±Ρ‹ ΠΌΡ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ использовали собствСнноС имя сСссии, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π±Ρ‹ Ρ€Π΅ΡˆΠ΅Π½Π°. Π’Π°ΠΊ ΠΈ сдСлаСм.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ скрипт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π» Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ startSession() ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ прСфикс для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ прСфикса Π² GET/POST ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΡƒΠΊΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСссиями PHP, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ всС рассмотрСнныС Π²Ρ‹ΡˆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ сэкономит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° особо Π½Π΅ углублялся Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ сСссий, ΠΈ даст достаточно понимания этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с PHP.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *