大约2个小时我正在努力解决这个问题。
我想在$ _SESSION数组中插入$ _POST变量,并将表单发送的每个新数据附加到会话变量。
现在,当我将会话变量定义为数组时,我是这样说的吗?
$ _SESSION [ '名'];
或者像这样
$ _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']从一开始就是一个数组吗?
答案 0 :(得分:1)
每次运行此脚本时,您都在清空会话数组。
要避免这种情况,请检查会话中是否已存在数组:
<?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']);
?>