簡體   English   中英

每次發送表單時,如何將$ _POST變量附加到$ _SESSION數組?

[英]How can i append a $_POST variable to a $_SESSION array each time the form is sent?

我花了大約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']是從頭開始的數組嗎?

每次運行此腳本時,您都將清空會話數組。

為避免這種情況,請檢查會話中是否已存在陣列:

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

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM