PHP在会话变量中传递数组

时间:2012-07-31 18:44:11

标签: php session variables

我正在尝试将一个数组从一个页面传递到另一个页面。我将会话变量设置为等于从我的表单收集的$ _POST数据。打印变量进行测试表明它最初是在第1页上设置的。

第1页

session_start(); // start up your PHP session! 

if(isset($_POST['submit']))
{


unset($_POST['submit']);
$_SESSION['userdata'] = $_POST;
$userqty=$_POST;
print_r($_SESSION['userdata']);

On Page 2我试图将它设置为另一个变量。我再次测试一下,看看数组是否已经传递到第2页,但它没有,因为没有 array_sum 函数的有效数组而出现错误

在session_start(); //启动你的PHP会话!

$_SESSION['userdata'] = $userqty;

print_r($_SESSION['userdata']);

print_r($userqty;);

$userqty_total=array_sum($userqty);

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

您将$_SESSION['userdata']设置为未初始化的$userqty值。

将您的第一行更改为:

session_start();
$userqty = $_SESSION['userdata']

答案 1 :(得分:1)

checkout serialize并在php中反序列化函数。

编辑:实际上你不需要将数组转换为字符串并将其转换回数组。你可以按原样使用它。

在第一页:

$_SESSION['data'] = $_POST;

在第二页:

$temp = $_SESSION['data'];

现在$temp的第1页内容为$_POST