Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态创建全局变量。[PHP加密]_Php_Encryption - Fatal编程技术网

动态创建全局变量。[PHP加密]

动态创建全局变量。[PHP加密],php,encryption,Php,Encryption,有没有一种动态创建常量变量的方法 其想法是,在登录到系统时,用户将被要求上传一个小文本文件,该文件将是fread,并分配给一个可以在整个系统中访问的var 如果这是可能的,那么这个变量是否只有在会话处于活动状态时才能被该用户访问 安全性是这里主要关注的问题,将var存储在会话变量中是否更实用 该计划: 数据库中的数据将通过mcrypt加密,密钥将存储在USB拇指驱动器上。用户将在访问系统时插入thumbdrive。登录后,应用程序将提示用户上传密钥。他们将导航到thumbdrive和key。通过

有没有一种动态创建常量变量的方法

其想法是,在登录到系统时,用户将被要求上传一个小文本文件,该文件将是fread,并分配给一个可以在整个系统中访问的var

如果这是可能的,那么这个变量是否只有在会话处于活动状态时才能被该用户访问

安全性是这里主要关注的问题,将var存储在会话变量中是否更实用

该计划:

数据库中的数据将通过mcrypt加密,密钥将存储在USB拇指驱动器上。用户将在访问系统时插入thumbdrive。登录后,应用程序将提示用户上传密钥。他们将导航到thumbdrive和key。通过fopen和fread,密钥将分配给一个全局var,该var将允许访问加密数据,并将用于加密输入数据库的新信息。 当用户注销或会话超时时,全局变量将变为空

谢谢



注意:var需要是持久性的,并且可以通过许多页面访问,Cookie已经过时。

最好的解决方案可能是将其存储在会话变量中,在我看来,这似乎是管理此类数据的最佳方法,尽管这可能取决于文件的大小。


<?php

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

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

first();
second();

?>
只需输入global关键字,您就可以在全局范围内粘贴任何您喜欢的内容。 虽然正如luke所说,听起来您应该使用自动会话变量。

我决定采用以下解决方案:

当用户登录到系统时,系统将提示他们上载密钥。上载脚本将分配一个唯一的随机文件名,并将文件放入临时目录

文件的路径将设置为会话变量。需要时,将从会话变量调用路径,并使用
file\u get\u contents()
检索密钥

会话结束或超时时,将删除会话变量,并通过
取消链接()
删除文件本身


谢谢

有道理。然而,全球经济会持续下去吗?i、 e.当用户离开上传/fopen/fread发生的页面后,var是否仍然可以访问?我猜会话var的问题是cookies。如果系统唯一可以访问密钥的时间是在有实时会话时,我更愿意这样做。会话不需要使用cookie。您还可以将会话ID嵌入URL中。这可以确保一旦用户离开,会话就会丢失。