Делайте это только когда у вас есть параметр GET
для его установки. Технически вы должны использовать POST
для обновления или изменения значений на стороне сервера, включая сеансы.
if (isset($_GET['value'])) {
$value = $_GET['value'];
$_SESSION["prev-value"] = $_SESSION["value"];
$_SESSION["value"] = $value;
}
При использовании вышеуказанного способа, если у вас нет /?value=something
, значение сеанса не будет затронуто.
Обновление: С вашими комментариями похоже, что стоит попробовать использовать предыдущие значения в виде массива. Так что слегка измените ваш $_SESSION["prev-value"]
как массив.
if (isset($_GET['value'])) {
$value = $_GET['value'];
if (!isset($_SESSION["prev-value"]))
$_SESSION["prev-value"] = array();
$_SESSION["prev-value"][] = $_SESSION["value"];
$_SESSION["value"] = $value;
}
Таким образом, у вас будет история предыдущих значений, которые можно повторять, и вам не понадобится база данных или текстовый файл. :)
Даже если одни и те же значения задаются слишком много раз, вы можете использовать PHP-функцию array_unique()
, чтобы получить уникальные значения массива, а если вы сошли с ума, array_reverse()
и получить второе [1]
значение для Предыдущая. ;)
Чтобы получить предыдущую версию, вам может понадобиться следующее:
$lastValue = array_reverse(array_unique($_SESSION["prev-value"]));
if (count($lastValue) > 1)
$lastValue = $lastValue[1];
echo $lastValue;