Zrób sobie prezent! Naucz się programować     |       -40% przy zakupach za min. 79 zł     |      Jeszcze przez:

4 dni 08 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
co to są ciasteczka oraz sesje w języku php

PHP - cookies oraz sesje

Aplikacje webowe muszą przechowywać jakieś informacje. Nieraz musimy np. zapisać nazwę zalogowanego użytkownika, czas od jego ostatniej wizyty czy jakieś inne dodatkowe informacje. W aplikacjach PHP do przechowywania takich niewielkich, krótkich informacji służą dwa mechanizmy: ciasteczka oraz sesje. W tym artykule użyjemy prostych przykładów aby te dwa mechanizmy zademonstrować. Zakładamy, że masz podstawową wiedzę na temat języka PHP.

co zapisują ciasteczka

Zdobądź umiejętności niezbędne do pracy jako PHP Developer.

Dowiedz się więcej

Zacznijmy od ciasteczek

Ciasteczka (eng: cookies) są to niewielkie fragmenty informacji, które mogą zostać zapisane na komputerze użytkownika. Do czego możemy wykorzystywać ciasteczka? Ciasteczka mogą być wykorzystywane np. do zapisywania zalogowanego użytkownika. Oraz do wielu innych rzeczy.

Spójrz w jaki sposób możemy ustawić ciasteczko:

 <?php
setcookie('username', 'Json', time() + 3600);
?>

Ciasteczka możemy ustawiać przy pomocy funkcji setcookie(). W naszym przykładzie przekazujemy 3 parametry do funkcji. Funkcja ma możliwość przyjęcia większej liczby parametrów, ale my się skupimy na 3. Rozłóżmy naszą funkcję na czynniki pierwsze.

1 parametr:

Jest to nazwa ciasteczka, czyli w naszym przypadku to username.

2 parametr:

Jest to wartość ciasteczka, czyli w naszym przypadku to Json.

3 parametr:

Jest to czas życia ciasteczka. W naszym przypadku czas życia to 1h. Pewnie zastanawiasz się dlaczego akurat 1h? Funkcja time() zwraca czas w sekundach od 1 stycznia 1970 roku. Aby ustawić czas życia ciasteczka na 1h musimy dodać 3600s (3600s = 1h) do wartości jaką zwraca funkcja time().

Odczytywanie wartości z ciasteczka

Podczas pracy z ciasteczkami będziemy potrzebowali sprawdzić ich wartość. Spójrz w jaki sposób możemy to zrobić:

<php
setcookie('username', 'Json', time() + 3600);

echo $_COOKIE['username'];
?>

Do wartości ciasteczka odwołujemy się za pomocą tablicy asocjacyjnej o nazwie $_COOKIE. Nazwa naszego ciasteczka to klucz takiej tablicy.

Po wywołaniu skryptu otrzymamy następującą odpowiedź:

Json 

Sesje - przechowywanie informacji

Podobnie jak ciasteczka, mechanizm sesji potrafi zapisywać informację o użytkowniku. Ciasteczka zapisywane są na urządzeniu użytkownika, a sesja zapisywana jest na serwerze.

Przygotowaliśmy prosty licznik wizyt na stronie. Na podstawie poniższego kodu postaramy się wytłumaczyć użyte mechanizmy.

<?php
session_start();

if(isset($_SESSION['views'])) {
    $_SESSION['views'] = $_SESSION['views'] + 1;
}
else {
    $_SESSION['views'] = 1;
}
echo "VIEWS:". $_SESSION['views'];

if($_SESSION['views'] == 5) {
    session_destroy();
}
?>

Funkcja session_start() inicjuje sesję.

$_SESSION[‘views’] jest to tablica asocjacyjna, która będzie przechowywała zmienne sesyjne.

Funkcja isset() weryfikuje czy dana zmienna sesyjna jest ustawiona bądź nie. Jeżeli nasza zmienna sesyjna views jest ustawiona wówczas zwiększamy nasz licznik odwiedzin o 1. W przeciwnym wypadku ustawiamy naszą zmienną sesyjną na 1.

Poniżej instrukcji else wyświetlamy zawartość naszej zmiennej sesyjnej korzystając z tablicy asocjacyjnej $_SESSION.

Ostatnia linijka weryfikuje czy mieliśmy do czynienia z 5 odsłonami strony. Po przekroczeniu 5 odsłon, sesja jest resetowana przy pomocy funkcji session_destroy().

W jaki sposób sesje przechowują informację

Zdobądź umiejętności niezbędne do pracy jako PHP Developer.

Dowiedz się więcej

Podsumowanie

Jeśli chcesz przechować proste, podstawowe informacje w programie napisanym w PHP, to właśnie ciasteczka oraz sesje są tu podstawowym wyborem. Mamy nadzieję, że po lekturze tego artykułu poradzisz sobie z samodzielnym zaimplementowaniem tych dwóch mechanizmów.