PHP 会话数组值在第三页丢失
PHP Session Array Values Lost On Third Page
我有一个很长的资料资料sheet我分成了三页
我一直在努力做的是:
- start a session on page 1 to carry over array $sda to page 2,
- have a session on page 2 to carry over arrays $sda and $sdb data to page 3,
- and on page 3, insert all array data to a database and end the session.
但是,在第 3 页上,第 1 页中的数组 $sda 变为空,并且仅传输数组 $sdb。我做错了什么?
这是我的代码:
第 1 页,用户填写表单,值放入数组 $sda,用户点击提交
session_start();
$_SESSION['sda'] = $sda;
header("location:enrol.php?a=2");
第 2 页
session_start();
$sda = $_SESSION['sda'];
print_r($_SESSION);
用户填写表格,值被放入数组 $sdb,(数组 $sda 中的值应该保留并传递到第 3 页。它实际上不需要打印在这个页面中,但我这样做了检查我是否可以从上一页访问它的内容——工作正常并打印
Array ( [sda] => Array ( [0] => First [1] => Mid [2] => Last [3] => Nick [4] => Cit [5] => Place [6] => January [7] => 1 [8] => 2012 [10] => Grade 1 [9] => School [11] => Home [12] => [13] => A@B.C [14] => [15] => [16] => Guard [17] => Rel [18] => 12345678 [19] => [20] => [21] => [22] => [23] => [24] => [25] => [26] => [27] => [28] => [29] => [30] => [31] => [32] => [33] => [34] => [35] => [37] => [39] => [41] => [36] => [38] => [40] => ) [sdb] => Array ( [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => a [22] => b [23] => c [24] => d [25] => e [26] => f ) )
用户点击提交(我只想在下一页显示 $sda 值。我做对了吗?:z)
session_start();
$_SESSION['sda'] = $sda;
$_SESSION['sdb'] = $sdb;
header("location:enrol.php?a=3");
第 3 页
session_start();
$sda = $_SESSION['sda'];
$sdb = $_SESSION['sdb'];
print_r($_SESSION);
这里有错误!尽管打印了 $sdb 值,但 $SDA 值丢失了;
Array ( [sda] => [sdb] => Array ( [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => a [22] => b [23] => c [24] => d [25] => e [26] => f ) )
提交时
保存到数据库并销毁会话
从 return
之后的代码中删除这一行
user clicks submit (I just want $sda values on the next page. Am I doing it right? :z)
即
$_SESSION['sda'] = $sda;
我有一个很长的资料资料sheet我分成了三页
我一直在努力做的是:
- start a session on page 1 to carry over array $sda to page 2,
- have a session on page 2 to carry over arrays $sda and $sdb data to page 3,
- and on page 3, insert all array data to a database and end the session.
但是,在第 3 页上,第 1 页中的数组 $sda 变为空,并且仅传输数组 $sdb。我做错了什么?
这是我的代码:
第 1 页,用户填写表单,值放入数组 $sda,用户点击提交
session_start();
$_SESSION['sda'] = $sda;
header("location:enrol.php?a=2");
第 2 页
session_start();
$sda = $_SESSION['sda'];
print_r($_SESSION);
用户填写表格,值被放入数组 $sdb,(数组 $sda 中的值应该保留并传递到第 3 页。它实际上不需要打印在这个页面中,但我这样做了检查我是否可以从上一页访问它的内容——工作正常并打印
Array ( [sda] => Array ( [0] => First [1] => Mid [2] => Last [3] => Nick [4] => Cit [5] => Place [6] => January [7] => 1 [8] => 2012 [10] => Grade 1 [9] => School [11] => Home [12] => [13] => A@B.C [14] => [15] => [16] => Guard [17] => Rel [18] => 12345678 [19] => [20] => [21] => [22] => [23] => [24] => [25] => [26] => [27] => [28] => [29] => [30] => [31] => [32] => [33] => [34] => [35] => [37] => [39] => [41] => [36] => [38] => [40] => ) [sdb] => Array ( [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => a [22] => b [23] => c [24] => d [25] => e [26] => f ) )
用户点击提交(我只想在下一页显示 $sda 值。我做对了吗?:z)
session_start();
$_SESSION['sda'] = $sda;
$_SESSION['sdb'] = $sdb;
header("location:enrol.php?a=3");
第 3 页
session_start();
$sda = $_SESSION['sda'];
$sdb = $_SESSION['sdb'];
print_r($_SESSION);
这里有错误!尽管打印了 $sdb 值,但 $SDA 值丢失了;
Array ( [sda] => [sdb] => Array ( [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => a [22] => b [23] => c [24] => d [25] => e [26] => f ) )
提交时
保存到数据库并销毁会话
从 return
之后的代码中删除这一行 user clicks submit (I just want $sda values on the next page. Am I doing it right? :z)
即
$_SESSION['sda'] = $sda;