Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在每次发送表单时将$\u POST变量附加到$\u会话数组?_Php_Session Variables_Http Post Vars - Fatal编程技术网

Php 如何在每次发送表单时将$\u POST变量附加到$\u会话数组?

Php 如何在每次发送表单时将$\u POST变量附加到$\u会话数组?,php,session-variables,http-post-vars,Php,Session Variables,Http Post Vars,大约两个小时以来,我一直在努力解决这个问题。 我想在$\会话数组中插入我的$\ POST变量,并将从表单发送的每个新数据附加到会话变量。 现在,当我将会话变量定义为数组时,我会这样说吗? $_会话['name'] 或者像这样 $\u会话['name']=array() 我有两个POST变量,我想在会话数组中插入每个变量 表格如下: <form action="action.php" method="POST" > <label>Moovie name: <input

大约两个小时以来,我一直在努力解决这个问题。 我想在$\会话数组中插入我的$\ POST变量,并将从表单发送的每个新数据附加到会话变量。 现在,当我将会话变量定义为数组时,我会这样说吗?
$_会话['name']
或者像这样
$\u会话['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>
我得到警告:array_push()希望参数1是数组,在action.php中给出null
再次说明,$\u SESSION['name']从一开始就是一个数组吗?

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

要避免这种情况,请检查会话中是否已存在阵列:

<?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']);

?>

检查是否,如果没有,则将它们设置为数组,如果已初始化,则继续执行
=array()
代码不会运行,因此不会将其置空。(或者,关于PHP的工作方式,您可以简单地使用
$\u SESSION['name'][]=$name;
等,如果它不是一个数组,它将变成一个数组。)@Jon
is_array()
仍将触发一个通知,如果密钥根本不存在,也可以使用
isset()
如果(!isset($\u SESSION['name']){$\u SESSION name']=array()。)
$_SESSION['name']; instead of $_SESSION['name'] = array();
<?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']);

?>