Создание глобальной переменной на лету. [ШИФРОВАНИЕ PHP]

Существует ли способ динамично создать постоянные переменные на лету?

Идея состоит в том, что после вхождения в систему, пользователя попросили бы загрузить небольшой текстовый файл, который будет освобожден и присвоен var, который был бы доступен по всей системе.

Если бы это возможно, только чтобы быть ясным, эта переменная затем только была бы доступна для того пользователя и только в то время как сессия жива?

Так как безопасность была бы основным беспокойством здесь, это было бы более практично для хранения var в переменной сеанса?

План:

Данные в дб будут зашифрованы через mcrypt, и ключ будет сохранен на картах флэш-памяти USB. Пользователь вставит карту флэш-памяти при попытке получать доступ к системе. После входа в систему приложение предложит пользователю загружать ключ. Они перейдут к карте флэш-памяти и ключу. Через fopen и освобожденный, ключ будет присвоен глобальному var, который затем предоставит доступ к зашифрованным данным и будет использоваться для шифрования новой информации, вводимой в дб. Когда пользователь выходит из системы, или сессия испытывает таймаут, глобальный var станет пустым.

Спасибо!


NB: var должен был бы быть персистентным и доступным через многие страницы, и cookie отсутствуют.

1
задан stormdrain 9 May 2010 в 02:27
поделиться

3 ответа

Я решил, что будет работать следующее решение:

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

Путь к файлу будет установлен в переменной сессии. Когда потребуется, путь будет вызван из переменной сессии, и file_get_contents() будет использован для получения ключа.

Когда сессия завершится или закончится, переменная сессии будет удалена, а сам файл будет удален через unlink().

Спасибо!

0
ответ дан 3 September 2019 в 00:43
поделиться

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

2
ответ дан 3 September 2019 в 00:43
поделиться
<?php

function first() {
 global $foo;
 $foo = 'bar';    
}

function second() {
global $foo;
echo $foo;
}

first();
second();

?>

Просто добавьте ключевое слово global и вы сможете засунуть в глобальную область видимости все, что захотите. Хотя, как сказал Люк, похоже, что вам следует использовать автоматическую переменную сессии. http://www.php.net/manual/en/reserved.variables.session.php

0
ответ дан 3 September 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: