如何创建post值作为会话数组?

时间:2013-03-08 11:09:59

标签: php session session-variables

如何将post值创建为会话数组,将会话传递给其他页面?当我回复Array时,我正在处理其他页面上仅显示$_SESSSION['size'];的代码?

这里是我的两个功能:

 $size = array('size');
 $_POST['size']; 
 $_SESSION['size'] = array();
 foreach ($size as $key)
 {
     if (isset($_POST[$key]))
     {
         $_SESSION['size'][$key] = $_POST[$key];
     }
 }


$size=$_POST['size'];
$max= count($_POST['size']);
for($i=0; $i<$max; $i++)
{
    $_SESSION['size']= $_POST['size'];
}

这两项功能仅在其他页面上显示Array

2 个答案:

答案 0 :(得分:2)

当你echo $_SESSION['size']它会显示Array因为它是一个数组,而不是单个值。 如果要检查值,请使用以下结构:

foreach($_SESSION['size'] as $key=>$val) {
    echo $key . '=>' . $val . '<br />';
}

而不是

echo $ _SESSION ['size'];

您也可以使用:

var_dump($_SESSION['size']);

print_r($_SESSION['size']);

答案 1 :(得分:0)

在第一页上只存储值:

$_SESSION['size'] = $_POST['size'];

现在,如果您的POST仅包含size的单个值,则只需使用:

echo $_POST['size'];

// or this:
some_function($_POST['size']);

但是,如果您的POST确实有size的值数组(这是可能的),那么您的会话中也会有一个数组。然后你需要一个简单的循环:

foreach ($_SESSION['size'] as $size) {
  echo $size;

  // or this:
  some_function($size);
}

处理这两种情况的组合代码:

if (is_array($_SESSION['size'])) {
  foreach ($_SESSION['size'] as $size) {
    echo $size;

    // or this:
    some_function($size);
  }
} else {
  echo $_SESSION['size'];

  // or this:
  some_function($_SESSION['size']);
}