html — сохранение переменной PHP после повторного запуска того же скрипта

Я очень новичок в PHP, и я пытаюсь добавить функции в уже существующее приложение.

Следующий PHP-код будет использоваться каждый раз при запросе базы данных со стороны клиента.

  <?php
header("Access-Control-Allow-Origin: *");

require_once("config/keychain.php");

function decrypt($data, $key, $iv){
$key = pack('H*', $key);
$iv = pack('H*', $iv);
return mcrypt_decrypt( MCRYPT_RIJNDAEL_128 , $key , $data ,
MCRYPT_MODE_CBC ,  $iv );
}
$request = (object)$_REQUEST;
$dbConfig = (object)parse_ini_string(decrypt(file_get_contents("config/database.ini"), ENCRYPTION_KEY, ENCRYPTION_IV));
require_once("include/UniversalDB.php");
require_once("include/UniversalModel.php");
require_once("include/UniversalController.php");
/*
Set DB Connection
*/
$dbConnection = new UniversalDB();
$dbConnection->init($dbConfig->host, $dbConfig->user, $dbConfig-
>password, 2);
/*$universalDB->connect();*/
require_once("boot.php");
?>

Я пытаюсь сохранить одно свойство из одного из этих значений запросов (значения логина $ _REQUEST).

Я попытался добавить это к предыдущему сценарию.

if(property_exists($request,'selectedDatabase')){
$selectedDatabase = $request->selectedDatabase;
}

Я получу $selectedDatabase инициализирован правильно. Однако каждый раз, когда запускается этот скрипт, все становится неинициализированным.

Я также пытался сделать $selectedDatabase в $GLOBALS и делает его статическим, но я теряю значение, когда приходит другой запрос.

Любые идеи, как я могу поддержать $selectedDatabase?

ПРИМЕЧАНИЕ. Файл, в котором написан этот скрипт, называется Index.php, и я не уверен, что это первый скрипт для загрузки или нет. Однако, похоже, это так!

Спасибо,

0

Решение

Есть несколько способов сохранить значение. Вот пара:

сессия

Одним из способов является использование встроенного в PHP обработка сеанса. Существуют различные способы хранения данных сеанса — по умолчанию используются файлы, но поддерживаются и другие средства, например, в базе данных.

Начните с вызова session_start (). Затем используйте суперглобальный массив $ _SESSION чтобы получить и установить значение.

$selectedDatabase = null;//initialize to empty value
$sessionStarted = session_start();
if ($sessionStarted) {
$selectedDatabase = $_SESSION['selectedDatabase'];
}
if ($selectedDatabase) {
//value is set, use it
}
else {
//set the value from $request
if(property_exists($request,'selectedDatabase')){
$selectedDatabase = $request->selectedDatabase;
}
//store the value in the session for subsequent requests
$_SESSION['selectedDatabase'] = $selectedDatabase;
}

Смотрите демонстрацию в это phpfiddle.

файл

Другим решением может быть сохранение значения в файле, например, с помощью file_get_contents () а также file_put_contents (), вместе с Файл существует. Содержимое также может быть сохранено как объект, используя json_encode () или другая функция сериализации (например, сериализации ()).

$selectedDatabase = null;//initialize to empty value
$fileName = 'databaseConfig.txt'; //set path accordingly
if (file_exists($fileName)) {
$selectedDatabase = file_get_contents($fileName);
}
if ($selectedDatabase) {
//value is set, use it
}
else {
//set the value from $request
if(property_exists($request,'selectedDatabase')){
$selectedDatabase = $request->selectedDatabase;
}
//store the value in the session for subsequent requests
file_put_contents($fileName, $selectedDatabase);
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector