#php
#php
Вопрос:
У меня есть файл под названием vars.php в котором хранятся такие вещи, как строка подключения к моей базе данных и три другие переменные (давайте назовем их $a
, $b
и $c
). Это настроено следующим образом
<?php
$dbname='MY_DB_NAME';
$dbusername='MY_DB_USERNAME';
$dbpassword='MY_DB_PASSWORD';
$database='MY_DB_SERVER';
$a = "";
$b = "";
$c = 0;
?>
На моей странице входа в систему я ввожу некоторые данные, которые затем отправляются в API, который возвращает некоторый JSON, который я десериализую и сохраняю в $ a, $ b и $ c следующим образом
if (!empty($data['SomeData']) {
global $a, $b, $c; // same names as in the vars.php file
$a = $data['SomeData']['param1'];
$b = $data['SomeData']['param2'];
$c = $data['SomeData']['param3'];
header('Location: nextpage.php');
}
Когда nextpage.php запускается, первое, что он делает, это вызывает помощник, который вызывает API для получения некоторых других данных. Проблема в том, что когда я нажимаю nextpage.php, $ a, $ b и $ c вернулись к значениям по умолчанию, а не к тем значениям, которые я им установил (я также пробовал подобные
$GLOBALS['c'] = $data['SomeData']['param3'];
но это также возвращает значение по умолчанию [в данном случае 0
])
Насколько я понимаю, оба этих способа настройки глобальной переменной области видимости должны быть в порядке, но я, должно быть, чего-то не хватает. Как мне заставить $ a, $ b и $ c сохранить значения, которые я установил для них на моей первой странице?
Из-за политики компании, для которой это предназначено, файлы cookie не являются опцией (не спрашивайте — им потребовалась целая вечность, чтобы согласиться на некоторые очень простые JS!)
Комментарии:
1. Для этого и существуют сеансы
2. Глобальный относится к области видимости, а не к существованию за пределами срока службы самого скрипта.
3. Они предназначены для хранения данных, которые используются на всем веб-сайте — обычно я бы, не раздумывая, использовал cookie, но в данном случае не могу