0

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

session_start();
$_SESSION['test'] = array(
    'var1' => $encryption_password, 
    'var2' => $some_encrypted_stuff
);

但当然在新窗口中“测试”会话为 NULL。我尝试了不同的选择,但都失败了。我确实可以创建一个文件并在那里写入数据,但这对我来说似乎并不安全。

任何人都可以给我一个关于这个问题的工作示例吗?自己什么都找不到。

更新

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

4

1 回答 1

0

就我而言,将其写入文件可能不是一个好方法。您正在尝试实现变量检索,仅此而已。我不确定为什么您的测试变量为空。我只是尝试自己进行此测试,并且可以正常访问所有内容。您提供的代码应该将数据写入会话变量。首先,请确保您没有在第一个脚本稍后的某个地方终止会话。其次,双重和三重检查您的代码以访问会话变量。没有看到你的代码很难说,但在第二页上,我唯一的猜测是你要么拼错了对变量的访问权限,要么忘记了重新开始会话! 这是我的两个文件的代码:

第一页:

<?
session_start();
$_SESSION['test'] = array('var1' => "somevalue", 'var2' => "someothervalue");

?>
<a href='other.php'>Go</a>

第二页:

<?
session_start();
var_dump($_SESSION['test']);
?>

这对我来说很好——我把完整的会话变量吐出来了。试一试,如果您仍然遇到问题,请告诉我们(使用更多代码,以便我们更好地了解发生了什么)。祝你好运!

于 2012-09-28T17:10:03.397 回答