Смена переменной в сессии

Segey
На сайте с 23.08.2005
Offline
404
786

Есть некоторый сценарий:

<?php

session_start();
session_register("version");

Вот так вот он начинается. Задача следующая: при передаче данных из формы с переменной и значением - сделать в сессии определенную переменную, доступную для всего приложения с этим самым значением.

Если из формы снова пришло другое значение, то поменять его в сессии и сменить на новое. Дальше оно станет доступно для пользователя.

Как это сделать? Что-то я непойму механизма - нужно ли регестрировать переменную по столько раз или для этого нужна процедура... Вообще переменная при передаче из формы в сесии не заменяется а остается такой же как и была. А так как при первом запуске ничего не было передано - она становится равной 0 и такой остается...

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
[Удален]
#1

Используй глобальные массивы, а то запутаешься. Без всякого session_register:

session_start();

$_SESSION['version'] = $_REQUEST['version'];
Segey
На сайте с 23.08.2005
Offline
404
#2

javadf,

Да вот только почему после инициализации переменной на каждой странице она опять обнуляется, т.е пришедшая из формы пропадает... куда теряется это значение?? Проблема в том, что после моего кода она уже не со значением из формы, а обнуленная 😕

[Удален]
#3


echo '<pre>';
print_r($_SESSION);
echo '</pre>';
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';

Это покажет тебе что в сесии и что передается в форме.

Все, что передается из формы или гетом через урл - находится в $_REQUEST, все, что сохранено в сессии находится в $_SESSION.

А вообще код в студию, а то не видя кода - гадание.

Segey
На сайте с 23.08.2005
Offline
404
#4

javadf,

Все спасибо, просто сделал доп значение.

session_start();

session_register("version");

if(!empty($this_version)){

$_SESSION['version'] = $new_version;

}

$this_version - значит что из формы что-то передалось. До этого за все отвечала одна переменная, а теперь то что из формы пришло сделал $new_version, спасибо за совет :)

[Удален]
#5

Если используешь глобальный массив $_SESSION, то не надо использовать session_register("version"); Из-за этого, может, и терялось значение, что каждый раз заново инициализировал сессионную переменную.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий