Php 如何在每次发送表单时将$\u POST变量附加到$\u会话数组?
大约两个小时以来,我一直在努力解决这个问题。 我想在$\会话数组中插入我的$\ POST变量,并将从表单发送的每个新数据附加到会话变量。 现在,当我将会话变量定义为数组时,我会这样说吗?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
$_会话['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;
等,如果它不是一个数组,它将变成一个数组。)@Jonis_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']);
?>