另一页上的会话值不同

时间:2012-09-22 08:59:22

标签: php session

第1页

$formData = array();
$formData[0] = 'insert data done';
$_SESSION['form_data'] = $formData;
header('Location: view.php');

第2页

if (isset($_SESSION['form_data'][0])) {
echo $_SESSION['form_data'][0];
unset($_SESSION['form_data']);
}

在第1页代码中,我注释掉标题并放入

var_dump($_SESSION['form_data'][0]);

正如我所希望的那样

"string(16) "insert data done"" 

这是正确的,但在第2页我放了一个

var_dump($_SESSION['form_data'][0]);

输出

string(1)“i”

我做错了什么。在第2页我只想回显值并取消设置但我尝试使用

var_dump($_SESSION['form_data']);

输出正确

也许我不安的方法可能不对。

1 个答案:

答案 0 :(得分:1)

你试过echo $_SESSION['form_data']吗?看来你正在收到字符串的第一个字母。

我认为如果只有一对键=> value在$ _SESSION变量上设置,它会自动缩减为其值。但我在网上找不到任何参考资料。

尝试在第1页上使用此代码:

$formData['someKey'] = 'insert data done';

和第2页上的内容:

echo $_SESSION['form_data']['someKey'];

让我们看看会发生什么......