Ciasteczka PHP

Ciasteczka są często używane do identyfikacji użytkowników.

Co to jest ciasteczko?

Ciasteczka są często używane do identyfikacji użytkowników. Ciasteczko to mały plik umieszczony na komputerze użytkownika przez serwer. Każdy raz, gdy ten sam komputer prosi o stronę za pomocą przeglądarki, wysyła również ciasteczko. Dzięki PHP możesz tworzyć i odzyskiwać wartości ciasteczek.

Jak utworzyć ciasteczko?

Funkcja setcookie() służy do ustawiania ciasteczek.

Uwaga:Funkcja setcookie() musi znajdować się przed znacznikiem <html>.

Gramatyka

setcookie(name, value, expire, path, domain);

Przykład

W poniższym przykładzie utworzymy ciasteczko o nazwie "user", przypisując mu wartość "Alex Porter". Określiliśmy również, że to ciasteczko wygaśnie po godzinie:

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>

Uwaga:Wysyłając ciasteczko, jego wartość jest automatycznie kodowana URL, a przy odbiorze automatycznie dekodowana (aby zapobiec kodowaniu URL, użyj zamiast tego setrawcookie()).

Jak odzyskać wartość ciasteczka?

Zmienna $_COOKIE w PHP służy do odzyskiwania wartości ciasteczek.

W poniższym przykładzie odzyskaliśmy wartość ciasteczka o nazwie "user" i wyświetliliśmy ją na stronie:

<?php
// Wyświetl ciasteczko
echo $_COOKIE["user"];
// Sposób wyświetlenia wszystkich ciasteczek
print_r($_COOKIE);
?>

W poniższym przykładzie używamy funkcji isset() aby potwierdzić, czy ustawiono ciasteczko:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Witamy " . $_COOKIE["user"] . "!";<br />
else
  echo "Witamy gościa!";<br />
?>
</body>
</html>

Jak usunąć plik cookie?

Kiedy usuwasz plik cookie, powinieneś zmienić datę wygaśnięcia na czas przeszły.

Przykład usunięcia:

<?php 
// ustaw datę wygaśnięcia na godzinę temu
setcookie("user", "", time()-3600);
?>

Co zrobić, jeśli przeglądarka nie obsługuje plików cookie?

Jeśli Twoja aplikacja obejmuje przeglądarki, które nie obsługuje plików cookie, musisz podjąć inne kroki, aby przekazać informacje między stronami w aplikacji. Jednym z nich jest przekazywanie danych z formularza (dotyczy to formularzy i wprowadzanych danych, które omówiliśmy wcześniej w tym kursie).

Poniższy formularz wysyła dane użytkownika do "welcome.php", gdy użytkownik kliknie przycisk wysyłania:

<html>
<body>
<form action="welcome.php" method="post">
Imię: <input type="text" name="name" />
Wiek: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

Pobierz wartości z "welcome.php", na przykład:

<html>
<body>
Witaj <?php echo $_POST["name"]; ?>.<br />
Masz <?php echo $_POST["age"]; ?> lat.
</body>
</html>