单击

时间:2016-06-14 10:16:34

标签: php

如何在我的代码中取消设置特定会话:

for($i=0;$i<count($_SESSION['src']);$i++)
{
?>
    <tr>
    <td><?php echo $_SESSION['name'][$i]; ?></td>
    <td><?php echo $_SESSION['price'][$i]; ?></td>
    <td><a href="?delPrd=<?php echo $_SESSION['pid'][$i]; ?>">Hapus</a></td>
    </tr>
<?php
}

if($_GET['delPrd']);
{
    unset($_SESSION['name']);
    unset($_SESSION['price']);
}

示例I每个会话ID有3个数据。现在我想点击每个删除链接取消设置会话。

我该怎么做?所以我点击删除然后它会隐藏我之前在<tr>

中点击的行

1 个答案:

答案 0 :(得分:0)

我在使用unset()时遇到了同样的问题,我尝试调试它以查看是否会使用简单的while循环取消设置。

while(isset($_SESSION['...'])):
    unset($_SESSION['...']);
endwhile;

这似乎对我有用,并且实际上取消了缓存,它就像它需要知道它的未设置才能继续,这没有任何逻辑意义,但这是你的代码 - 你花了50%的时间来修改代码,唯一50%的人想知道它是如何运作的。

希望这会有所帮助。

编辑:您可以将其转换为可重用的对象,例如:

class SessionRemovale
{
    public function Remove($param)
    {
        while(isset($_SESSION[$param]))    {
            unset($_SESSION[$param]);
        }
    }
}

然后使用它:

$session_controller = new SessionRemovale();
$session_controller->Remove("....");
$session_controller->Remove("....");