INF.03Backend & PHP
Sesje ($_SESSION) i Ciasteczka ($_COOKIE) w PHP
Mechanizmy podtrzymywania stanu między kolejnymi bezstanowymi żądaniami HTTP (po stronie serwera - sesje, po stronie klienta - ciasteczka).
Sesje vs Ciasteczka:
- Ciasteczko (
setcookie): Dane przechowywane na dysku w przeglądarce użytkownika. - Sesja (
session_start/$_SESSION): Dane przechowywane po stronie serwera. Przeglądarka przechowuje jedynie unikalny identyfikator sesji (PHPSESSID) w ciasteczku.
PHP
<?php
// Inicjalizacja sesji (Musi być wywołana przed wysłaniem czegokolwiek do przeglądarki!):
session_start();
// Zapisanie danych użytkownika po zalogowaniu:
$_SESSION['user_id'] = 42;
$_SESSION['login'] = 'admin';
// Ustawienie ciasteczka (nazwa, wartość, czas wygaśnięcia, ścieżka):
setcookie('motyw', 'dark', time() + (30 * 24 * 60 * 60), '/');
// Niszczenie sesji przy wylogowaniu:
session_unset();
session_destroy();Najczęstsze pułapki na egzaminie INF.03:
- Zarówno
session_start(), jak isetcookie()muszą zostać wywołane przed jakimkolwiek kodem HTML, spacją lub instrukcjąecho, inaczej wystąpi błąd Headers already sent!
Chcesz sprawdzić to pojęcie w praktyce?
Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Sesje ($_SESSION) i Ciasteczka ($_COOKIE) w PHP lub rozpocznij trening.