我想取消设置会话数组,但它没有发生。 我在哪里错了?
if(isset($_SESSION['id']) && isset($_POST['processorder']))
{
$chk = $_SESSION['id'];
$query="update order_details set process_order='1' where id IN(".implode(',',$chk).")";
mysql_query($query) or die(mysql_error());
unset($chk);
}
答案 0 :(得分:3)
$chk = $_SESSION['id'];
您在这里做的是创建一个变量$chk
,其值为$_SESSION['id']
,然后取消设置此$chk
,但您从未触及$ _SESSION var。
为此,您需要拥有以下代码:
$_SESSION['id'] = '';
unset($_SESSION['id']);
答案 1 :(得分:2)
像这样使用php unset
: -
unset($_SESSION['id']);
unset($_SESSION['processorder']);
或者您可以使用session_destroy()
将删除与该用户关联的所有数据。
不是unset($chk);
答案 2 :(得分:0)
$chk
只是引用变量。您需要unset
原始变量。
unset($_SESSION['id']);
答案 3 :(得分:0)
使用 NULL
和 unset
删除$_SESSION[]
个变量中保存的值,例如:
$_SESSION['id'] = NULL;
unset($_SESSION['id']);
如果你把
$_SESSION['id'] = '';
和以防 ''
两个引号之间有空格,然后
if(isset($_SESSION['id'])){}
返回 true 而不是 false 。
注意:您也可以使用 session_destroy()
功能,但销毁所有保存的会话数据。
答案 4 :(得分:0)
取消设置$chk
实际上并不影响原始数组。你可以使用引用来做到这一点。但请记住,取消设置引用本身也不会影响原始数组。这应该有效:
$session = &$_SESSION;
unset($session[id']);
如果您需要对$ _SESSION执行许多操作,这可能很有用 - 应该让您的代码更具可读性