<?php
// Π€ΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΈΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΜΡ
ΠΌΠ΅ΡΠΎΠΊ
function my_session_start()
{
session_start();
// ΠΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΠ°ΡΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΡΡΠΈΠΈ
if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
session_destroy();
session_start();
}
}
// Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠ΅ΡΡΠΈΠΈ
function my_session_regenerate_id()
{
// ΠΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ session_create_id(), ΠΏΠΎΠΊΠ° ΡΠ΅ΡΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½Π°, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ,
// ΡΡΠΎ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
// ΠΠΠΠΠΠΠΠ: ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΡΠΈΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ!
$newid = session_create_id('myprefix-');
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΜΡ ΠΌΠ΅ΡΠΊΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΡΡΠΈΠΈ.
// ΠΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½ Π΄Π°Π½Π½ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΡΠ°Π·Ρ
$_SESSION['deleted_time'] = time();
// ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΠΈ ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌ Π΅Ρ
session_write_close();
// Π£Π±Π΅Π΄ΠΈΠΌΡΡ, ΡΡΠΎ PHP ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΡΡΠΈΠΈ
// ΠΠΠΠΠ§ΠΠΠΠ: Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ PHP ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠΈΡ use_strict_mode, ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ
ini_set('session.use_strict_mode', 0);
// Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΡΡΠΈΠΈ
session_id($newid);
// ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΡΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ
session_start();
}
// Π£Π±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, ΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΡΡΠΎΠ³ΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΎΠΏΡΠΈΡ use_strict_mode.
// ΠΠΏΡΠΈΡ use_strict_mode ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π° ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
ini_set('session.use_strict_mode', 1);
my_session_start();
// ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΡΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π°:
// - ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΡΡΠ» Π² ΡΠΈΡΡΠ΅ΠΌΡ
// - ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΡΠ΅Π» ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ
// - ΠΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ²ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
my_session_regenerate_id();
// Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
?>