在PHP中的浏览器窗口之间传递加密变量

在PHP中的浏览器窗口之间传递加密变量,php,session,Php,Session,我拼命想在浏览器窗口之间传递一个变量。我有一个php页面(test.php),它在新窗口中打开另一个页面(other.php)。我还有一些变量需要加密/解密,并使用加密密码传递。我创建了这样一个会话: session_start(); $_SESSION['test'] = array( 'var1' => $encryption_password, 'var2' => $some_encrypted_stuff ); 当然,在新窗口中,“测试”会话为空。我尝试过

我拼命想在浏览器窗口之间传递一个变量。我有一个php页面(test.php),它在新窗口中打开另一个页面(other.php)。我还有一些变量需要加密/解密,并使用加密密码传递。我创建了这样一个会话:

session_start();
$_SESSION['test'] = array(
    'var1' => $encryption_password, 
    'var2' => $some_encrypted_stuff
);
当然,在新窗口中,“测试”会话为空。我尝试过不同的选择,但都失败了。我确实可以创建一个文件并在那里写入数据,但这对我来说并不安全

有谁能给我一个关于这个问题的工作实例吗?我自己找不到任何东西

更新


好的,我的主要任务是在一个php文件中加密变量,在另一个php文件中解密。有一个条件:加密密码不能被第二个php文件从初始存储位置读取-只能被第一个文件读取。

就我而言,将其写入文件可能不是一个好方法。您试图实现变量检索,仅此而已。 我不知道为什么你的测试变量是空的。我只是试着自己做这个测试,我可以很好地访问一切。 您提供的代码应该将数据写入会话变量。首先,确保您没有在第一个脚本后面的某个地方终止会话。其次,双重和三重检查代码以访问会话变量。没有看到您的代码很难判断,但在第二页上,我唯一的猜测是您要么拼写错误了对变量的访问,要么忘记了再次启动会话 以下是我的两个文件的代码:

第一页:


第二页:


这对我来说很好——我得到了完整的会话变量spat。试一试,如果您仍然有问题,请告诉我们(更多的代码,以便我们更好地了解问题)。祝你好运

您是否已调用session_start();在获得另一个.php中的$_SESSION['test']之前,我要指出,如果将解密密钥/密码与加密字符串一起存储在
$_SESSION
中,那么首先对其进行加密就没有什么价值。这将是一种隐蔽的安全性,而不是真正的安全性。见Michael Berkowskicomment@KernelFolla,我确实做到了。我甚至尝试设置会话cookie路径,但仍然无法使用。使用会话存储一个令牌,而只存储一个令牌。将必须传递的与特定令牌关联的任何内容存储在db上。当您收到下一个请求时,它会将令牌传递回服务器。从会话中读取令牌,在db、fech、use、destroy from db上搜索它,这样它就不会被重用。这样,实际变量就不会离开服务器。也许我的问题出在Joomla中。我正在将会话保存在它的框架中,然后尝试从中获取会话数据。啊,也许吧。我没有使用Joomla-我不知道它可能以不同的方式保存会话数据。无论哪种方式,如果出现问题,我都会调用PHP的本机会话函数。另外,我突然想到,在php安装中可能没有启用会话?再检查一遍。
<?
session_start();
$_SESSION['test'] = array('var1' => "somevalue", 'var2' => "someothervalue");

?>
<a href='other.php'>Go</a>
<?
session_start();
var_dump($_SESSION['test']);
?>