Я очень новичок в 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
, и я не уверен, что это первый скрипт для загрузки или нет. Однако, похоже, это так!
Спасибо,
Есть несколько способов сохранить значение. Вот пара:
Одним из способов является использование встроенного в 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);
}
Других решений пока нет …