删除特定的会话变量


Remove specific session variable

我通过表单提交将一些会话变量保存在我的网站中。使用此表单,客户可以为其产品添加多个维度。对于每次提交,网站都会显示所选的维度。因此,有时可以看到多种配置。

客户必须能够删除此类配置(因此是SESSION的一部分)。

使用这段代码,我将配置保存在SESSION:中

if(isset($_POST['wz_submit_saving_1'])) :
    $straight_saving = array(
        'wz_str_saving' => $_POST['wz_str_saving'],
        'wz_saving_a' => $_POST['wz_saving_a'],
        'wz_saving_b' => $_POST['wz_saving_b'],
        'wz_submit_saving_1' => $_POST['wz_submit_saving_1']
    );
    $_SESSION['straight_saving'][] = $straight_saving;
endif;

我展示了它们,每个配置都有一个删除链接:

<a class="remove_link" href="http://www.myurl.com/?wz_submit_saving_remove_1">Verwijder sparing</a>

使用以下代码,我删除了会话。

if(isset($_GET['wz_submit_saving_remove_1'])) :
    unset($_SESSION['straight_saving']);
endif;  

但当我这样做的时候,SESSION中的所有配置$direct_saveng;都不见了。因此,我只需要从我单击的删除按钮的会话中删除配置,而不是全部删除。

有人能告诉我使用GET链接的方式是否正确,或者我需要做其他事情吗?

谢谢!

经过我们的聊天,我们更清楚了:

你想取消设置你在会话中推送后相应添加的每个保存:

foreach($_SESSION['straight_saving'] as $key => $saving) {
//You can create a link that says ?saving=$key
}

然后,您可以通过执行unset($_SESSION['straight_saving'][$_GET['saving']]来取消设置正确的会话。别忘了在里面放一些支票,这样可以避免人们在URL中放任何东西。