Переменные PHP $ Globals сбрасываются к значениям по умолчанию при смене страницы

#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, но в данном случае не могу

4. php.net/manual/en/book.session.php