php 会话变量名作为变量?

2cmtqfgy  于 2023-02-03  发布在  PHP
关注(0)|答案(3)|浏览(161)

我尝试创建一个会话变量,其中会话变量名应该不同,因此我将会话变量名设置为变量名:

$nummer = $_POST['nummer'];
$num = $nummer; 

$vareInfo = array(
    "vareNummer" => "$nummer",
    "vareNavn" => "$vare",
    "varePris" => $pris, 
    "vareBillede" => $VarBillede, 
    "vareAntal" => $antal
);
$_SESSION[$num] = $vareInfo;
$_SESSION[$pris] = "hukabuka";

但我不工作,我只是改变其他sessioen到新的值?
它输出如下内容:

Array ( [vareNummer] => 182162 
        [vareNavn] => Solsikke 
        [varePris] => 120 
        [vareBillede] => 63c7cba6cac6d7.24544415.jpg 
        [vareAntal] => 1 
    )

下次我运行它时,它会更改它,而不是创建新的

bakd9h0s

bakd9h0s1#

若要防止会话被覆盖,请检查会话是否已存在。
这样,每个唯一的$num只创建一次

$nummer = $_POST['nummer'];
$num = $nummer; 

$vareInfo = array(
    "vareNummer" => "$nummer",
    "vareNavn" => "$vare",
    "varePris" => $pris, 
    "vareBillede" => $VarBillede, 
    "vareAntal" => $antal
);
if(!isset($_SESSION[$num])){
  $_SESSION[$num] = $vareInfo;
}
if(!isset($_SESSION[$pris])){
  $_SESSION[$pris] = "hukabuka";
}
wlsrxk51

wlsrxk512#

下面是一个如何实现这一点的示例(使用PHP 8.2):

我的表单.html:

<form action="do_stuff.php" method="POST">
    <input id="data1" name="data1" type="text">
    <input id="data2" name="data2" type="text">
    <input type="submit" value="Do">
</form>

做_东西.php:

<?php
session_start();

$nummer = $_POST['data1'];
$num = $nummer; 
$pris = $_POST['data2'];
$vareInfo = array(
    "vareNummer" => "$nummer",
    "varePris" => $pris
);
$_SESSION['my_data'][$num] = $vareInfo;
$_SESSION['my_data'][$pris] = "hukabuka";

// or, the session variables can be set using a prefix:
//$_SESSION['my_data_' . $num] = $vareInfo;

?>

编辑地址:

使用两个唯一的data1值从表单发送 * 两次 * 的会话数据示例如下所示。值为12347890

Array ( 
    [my_data] => 
        Array ( 
         [1234] => Array ( [vareNummer] => 1234 [varePris] => 55 ) 
         [55] => hukabuka 
         [7890] => Array ( [vareNummer] => 7890 [varePris] => 99 ) 
         [99] => hukabuka 
        ) 
)
bgtovc5b

bgtovc5b3#

<?php 
$nummer = $_POST['nummer'];
$num = $nummer; 

$vareInfo = array(
    "vareNummer" => "$nummer",
    "vareNavn" => "$vare",
    "varePris" => $pris, 
    "vareBillede" => $VarBillede, 
    "vareAntal" => $antal
);
if(!empty($_SSESSION[$num])) {
$_SESSION[$num] = $vareInfo;
} 
if(!empty($_SESSION[$pris])) {
$_SESSION[$pris] = "hukabuka";
}
?>

相关问题