2

大约 2 个小时,我一直在努力解决这个问题。我想将我的 $_POST 变量插入到 $_SESSION 数组中,并将从表单发送的每个新数据附加到会话变量中。现在,当我将会话变量定义为数组时,我会这样说吗?
$_SESSION['name'];
或像这样
$_SESSION['name'] = array();

我有两个 POST 变量,我想将每个变量插入会话数组中。

这是表格:

<form action="action.php" method="POST" >
<label>Moovie name: <input type="text" name="name" /></label><br />
<label>Price: <input type="text" name="price" /></label><br />
<input type="submit" value="Send" />
</form>

这是action.php

<?php

session_start();

$_SESSION['name'] = array();
$_SESSION['price'] = array();

$name = $_POST['name'];
$price = $_POST['price'];

array_push($_SESSION['name'], $name);
array_push($_SESSION['price'], $price);

print_r($_SESSION['name']);
echo "<br>";
print_r($_SESSION['price']);

?>

注意:如果我说

$_SESSION['name']; instead of $_SESSION['name'] = array();

我得到警告:array_push() 期望参数 1 是数组,在 action.php 中给出 null
再次,$_SESSION['name'] 从一开始就是一个数组吗?

4

1 回答 1

2

每次运行此脚本时,您都在清空会话数组。

为避免这种情况,请检查会话中是否已存在数组:

<?php

session_start();


if (!isset($_SESSION['name'])) {
    $_SESSION['name'] = array();
}
if (!isset($_SESSION['price'])) {
    $_SESSION['price'] = array();
}    


$name = $_POST['name'];
$price = $_POST['price'];

array_push($_SESSION['name'], $name);
array_push($_SESSION['price'], $price);

print_r($_SESSION['name']);
echo "<br>";
print_r($_SESSION['price']);

?>
于 2013-03-17T11:39:13.890 回答