Ciasteczka (cookies) - tworzenie, odczytywanie, usuwanie
Ciasteczka (ang. cookies) to niewielkie informacje tekstowe. Przekazywane są przez serwer WWW do przeglądarki użytkownika, który odwiedza daną stronę.
Stosowane są najczęściej w wszelkiego rodzaju licznikach, ankietach, sondach aż po sklepy internetowe czy strony wymagające logowania. W tej poradzie przekonamy się jak można je wykorzystać oraz poznamy zalety zastosowania takiego rozwiązania na własnej stronie internetowej.
Tworzenie ciasteczek
Na początek zobaczmy jak wysłać ciasteczko do użytkownika. Kod jest krótki oraz prosty do zrozumienia dla osób, które znają podstawy języka PHP. Wyślemy ciastko o nazwie "uzytkownik" i wartości "JanKowalski", Przy okazji wyślemy również hasło naszego użytkownika - nazwa "haslo" o wartości "AlaMaKota". Dodamy również informację, iż ma być ono ważne przez 1 godzinę - po tym czasie zostanie usunięte z pamięci przeglądarki użytkownika.
Ciasteczka przekazywane są za pomocą nagłówków HTTP. Muszą być one wysłane zanim do przeglądarki zostanie wysłana jakakolwiek inna treść. W związku z tym przed zapisaniem ciasteczka nie może być żadnego wywołania funkcji echo i pochodnych, a także tag otwierający tryb PHP musi być pierwszymi znakami w pliku - nie może być żadnej spacji ani pustych wierszy.
PHP automatycznie odczytuje ciasteczka i zamienia je na zmienne. Są one przechowywane w tablicy asocjacyjnej $_COOKIE, w której kluczami są nazwy ciasteczek. Ciasteczka ustawia się je pomocą funkcji setcookie(nazwa, wartość, czas_wygaśnięcia, ścieżka, domena, bezpieczeństwo).
<?php
setcookie("uzytkownik", "Marian", time()+3600);
setcookie("haslo", "AlaMaKota", time()+3600);
?>
Odczytywanie ciasteczek
Skoro wysłaliśmy ciastko, które zawiera przykładowe dane spróbujemy je odczytać. Aby to uczynić posługujemy się nazwami ciasteczek czyli "uzytkownik" oraz "haslo".
<?php
echo "Nazwa użytkownika: ".$_COOKIE['uzytkownik'];
echo "Hasło: ".$_COOKIE['haslo'];
?>
Kasowanie ciasteczek
Jeżeli chcemy skasować dane ciasteczko szybciej niż jest to określone, należy ponownie posłużyć się wyżej wymienioną funkcją. Zostanie skasowane ponieważ wskazujemy na czas przeszły (czas teraźniejszy - 3600 s). Jeśli będzie równy zero - ciasteczko będzie ważne tylko do zamknięcia przeglądarki.
<?php
setcookie ("NAZWA_COOKIE", "", time() - 3600);
?>
Jak zauważamy wszystko opiera się na jednej funkcji w PHP, jest to proste do zrozumienia. Można je wykorzystać do sprawdzenia, czy użytkownik odwiedza stronę po raz pierwszy czy kolejny - a od tego uzależnić na przykład wyświetlane wiadomości. W przypadku pytań zachęcam do napisania komentarza pod poradą.
Kategorie: PHP + MySQL. Tagi: #formularze, #php, #skrypty. Źródło obrazków: Pixabay, Font awesome.