Хранить значение в течение более длительного времени — (как сохранить логическое значение в cookie)

#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). И как долго это хранится? Будет ли оно удалено при перезапуске браузера?