Cookies PHP

Куки часто используются для идентификации пользователей.

Что такое куки?

Куки часто используются для идентификации пользователей. Куки - это маленькие файлы, оставленные сервером на компьютере пользователя. Каждое время, когда одно и то же компьютерное устройство запрашивает страницу через браузер, оно также отправляет куки. С помощью PHP вы можете создавать и получать значения куки.

Как создать куки?

Функция setcookie() используется для установки куки.

Примечание:Функция setcookie() должна быть расположена до тега <html>.

Синтаксис

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

Пример

В следующем примере мы создадим куки с именем "user", присвоим ему значение "Alex Porter". Мы также установили, что этот куки истекает через час:

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

Примечание:При отправке куки его значение автоматически кодируется URL, при получении автоматически декодируется (для предотвращения URL-кодирования используйте setrawcookie() вместо этого).

Как получить значение куки?

Переменная $_COOKIE в PHP используется для получения значения куки.

В следующем примере мы взяли значение куки с именем "user" и显示了它在页面上:

<?php
// Вывод куки
echo $_COOKIE["user"];
// Способ просмотра всех куки
print_r($_COOKIE);
?>

В следующем примере мы используем функцию isset() для проверки, был ли установлен куки:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Добро пожаловать " . $_COOKIE["user"] . "!";
else
  echo "Добро пожаловать, гость!";
?>
</body>
</html>

Как удалить cookie?

При удалении cookie вам следует изменить дату истечения срока на прошлое время.

Пример удаления:

<?php 
// установить дату истечения срока на час назад
setcookie("user", "", time()-3600);
?>

Что делать, если браузер не поддерживает cookie?

Если ваше приложение включает браузеры, которые не поддерживают cookie, вам придется использовать другие методы для передачи информации между страницами в приложении. Один из способов - передавать данные из формы (о формах и пользовательских данных мы уже говорили в этом курсе).

Ниже приведена форма, которая отправляет пользовательские данные на "welcome.php" при нажатии на кнопку "Отправить":

<html>
<body>
<form action="welcome.php" method="post">
Имя: <input type="text" name="name" />
Возраст: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

Вернуть значение из "welcome.php", например:

<html>
<body>
Добро пожаловать <?php echo $_POST["name"]; ?>.<br />
Вам <?php echo $_POST["age"]; ?> лет.
</body>
</html>