#php #html #session #session-cookies
#php #HTML #сессия #сессия-cookies
Вопрос:
Я знаю, что с помощью $_SESSION
можно сохранять значения с течением времени. Время по умолчанию равно 1440 секундам = 24 минутам. Я хотел бы, чтобы мои значения сохранялись: в течение более длительного времени / до закрытия браузера.
Допустим, я хочу сохранить логическое значение и строковое значение. Является ли сессия лучшим способом?
Например: $_SESSION["value"] = true;
и $_SESSION["value2"] = "my_string";
?
Является ли сессия лучшим способом или есть какие-либо другие хорошие / лучшие решения? Значения должны быть доступны для всех страниц (.php) на моем веб-сайте.
Ответ №1:
Вы можете использовать cookies для хранения данных в течение более длительного периода времени. таким образом, использование файлов cookie будет похоже
Установить cookie
<?php
$cookie_name = "value2";
$cookie_value = "my_string";
//Cookie to hold true false can set using 0 or 1 like
//setcookie('value', '0'); 0 for false, 1 for true
setcookie($cookie_name, $cookie_value, time() (86400 * 30), "/"); // 86400 = 1 day
?>
Извлекать значение cookie
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!";
echo "Cookie Value is: " . $_COOKIE[$cookie_name];
}
?>
Установка и извлечение cookie для boolean
<?php
$CookieVar = true;
// setting the cookie
setcookie('myCookie', $CookieVar ? '1' : '0'); //set '1' if true else set '0'
if (isset($_COOKIE['myCookie']) AND $_COOKIE['myCookie'] === '1') {
echo 'true';
} else {
echo 'false';
}
?>
Скриншот
Комментарии:
1. Можете ли вы также показать пример того, как установить и получить значение cookie для true / fase?
2. Но, afaik, cookies на самом деле небезопасны? Пользователи могут создавать / изменять значение для доступа к веб-сайту?
3. @Andrey Если вы сохраняете что-либо на стороне клиента, это действительно не на 100% безопасно. Это может быть каким-то образом изменено
Ответ №2:
Вы можете использовать локальное хранилище для сохранения данных и для использования их с любой страницы веб-сайта.
Использование Javascript
window.localStorage.setItem(key, value);
Этот ключ можно удалить с помощью
window.localStorage.removeItem(key, value);
Вы можете получить значение ключа с помощью
window.localStorage.getItem(key);
Комментарии:
1. Поправьте меня, если я ошибаюсь, но разве вы не можете просто изменить значения в инструментах разработки (F12). И как долго это хранится? Будет ли оно удалено при перезапуске браузера?