Π‘Ρ‚Π°Ρ‚ΡŒΡ

πŸ“˜ Π“Π»Π°Π²Π° 9. БСссии ΠΈ ΠΊΡƒΠΊΠΈ Π² PHP

ΠœΡ‹ подошли ΠΊ Ρ‚Π΅ΠΌΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ обходится ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ сайт — сСссии ΠΈ ΠΊΡƒΠΊΠΈ.

πŸͺ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΡƒΠΊΠΈ (cookies)?

ΠšΡƒΠΊΠΈ — это нСбольшиС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Установка ΠΊΡƒΠΊΠΈ

setcookie("имя", "Анна", time() + 3600); // Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 1 час
  • имя — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΡƒΠΊΠΈ

  • "Анна" — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

  • time() + 3600 — срок дСйствия (врСмя Π² сСкундах ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ)

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΡƒΠΊΠΈ

echo $_COOKIE["имя"]; // Анна

❌ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΡƒΠΊΠΈ

setcookie("имя", "", time() - 3600); // срок дСйствия Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ

🧠 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСссия?

БСссия — это способ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСрС, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ привязанныС ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

πŸ”“ Запуск сСссии

session_start(); // всСгда Π² Π½Π°Ρ‡Π°Π»Π΅ страницы!

🧰 Π—Π°ΠΏΠΈΡΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² сСссию

$_SESSION["Π»ΠΎΠ³ΠΈΠ½"] = "admin";

πŸ“– Π§Ρ‚Π΅Π½ΠΈΠ΅

echo $_SESSION["Π»ΠΎΠ³ΠΈΠ½"];

❌ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

unset($_SESSION["Π»ΠΎΠ³ΠΈΠ½"]);

πŸ” Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сСссии

session_destroy();

πŸ’‘ Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСссии, Π° ΠΊΠΎΠ³Π΄Π° ΠΊΡƒΠΊΠΈ?

БСссии ΠšΡƒΠΊΠΈ
Π“Π΄Π΅ хранятся На сСрвСрС
ΠžΠ±ΡŠΡ‘ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π‘ΠΎΠ»ΡŒΡˆΠ΅ (~ΠΌΠ±)
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π»ΠΎΠ³ΠΈΠ½Π° βœ…
Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ❌
ΠΠ°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ Высокая

βœ… ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° сСссиях:

// login.php
session_start();
$_SESSION["user"] = "admin";
echo "Π’Ρ‹ вошли!";
// protected.php
session_start();
if (!isset($_SESSION["user"])) {
    echo "Доступ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½!";
    exit;
}
echo "Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ, " . $_SESSION["user"];
PHP
Для ΠΎΡ‚Π²Π΅Ρ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ