【发布时间】:2017-01-27 12:46:17
【问题描述】:
我正在尝试使用 $_SESSION 在 PHP 中将随机生成的数字从一个页面传输到另一个页面。每次我在第二页上print_r($_SESSION) 时,数组都会返回空。但是当我在第一页上print_r($_SESSION) 时,它会显示在整个脚本中添加的所有数据。
这是我得到的代码:
pageOne.php
<?php session_start(); ?>
<!-- Some HTML -->
<?php
$counter = 0;
while (counter <= 9) {
genData($counter);
$counter++;
}
// genData function
function genData($count) {
$number = rand(1, 10);
$_SESSION[$count] = $number;
}
// print_r() to check data has been added
print_r($_SESSION);
?>
pageTwo.php
<?php
session_start();
// print_r to make sure data has been carried forward
print_r($_SESSION);
// unset and destroy session
session_unset();
session_destroy();
?>
pageOne 上 print_r() 的输出如下所示:
数组 ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9)
而在 pageTwo 上只是这样:
数组( )
我一直在使用 PHP 7.1.0 并通过 atom.io 托管本地 PHP 服务器,我也在 c9.io 和 XAMPP 上尝试过,但我仍然遇到同样的问题。我还检查了会话 ID,它们总是相同的。
我不确定这是我的 PHP 配置问题还是我的代码问题。
【问题讨论】:
-
在
pageTwo.php上,您正在打印$_SESSION。例如,您应该print_r($_SESSION[0])或print_r($_SESSION['0']);不确定。 -
使用浏览器开发者工具确定会话 ID cookie 是否改变。检查会话目录以查看文件是否正在生成并包含数据。
-
@AntonisTsimourtos print_r($_SESSION) 应该输出孔数组...
-
@AntonisTsimourtos 一个空数组怎么可能在键 0 上有一个项目?
-
@mr.void 哦,好的,这是一个有用的提示 - 不知道!