我的问题是运行下面的代码时没有取消设置会话变量。 怎么了?
<?php
session_start();
session_unset();
//session_destroy();
header("location: user_form.php");
?>
答案 0 :(得分:3)
您实际上并未创建会话引擎启动但未创建会话变量的会话。 例如,如果您有一个会话变量$ _SESSION ['userid'],那么您可以取消设置该值或使其过期,或将其值设置为使您的标题重定向的if子句失败的值。
答案 1 :(得分:2)
通常我会这样做:
<?php
session_start();
if(!empty($_SESSION) && is_array($_SESSION)) {
foreach($_SESSION as $sessionKey => $sessionValue)
session_unset($_SESSION[$sessionKey]);
}
session_destroy();
header("Location: user_form.php");
?>
答案 2 :(得分:1)
尝试使用此语法(在未设置中使用变量名称):
<?php
session_start();
if(isset($_SESSION['views']))
unset($_SESSION['views']);
?>
答案 3 :(得分:0)
我猜你的会话集中已经有变量,否则没有什么可以“取消设置”。
使用session_unset,会话本身仍然存在,因为它只相当于:
$_SESSION = array();
除非您使用的是PHP 4.0.6或更低版本,否则您应该使用:
unset ($_SESSION['varname']);
您的代码没有任何“错误”可以这么说。