我试图通过单击注销来销毁会话,但这不起作用。
<?php
session_start();
if(isset($_SESSION['user_name']))
{
session_destroy();
session_unset();
header('Location:Login2.php');
}
else
{
echo "error";
}
?>
它进入 else 部分意味着显示错误。
我试图通过单击注销来销毁会话,但这不起作用。
<?php
session_start();
if(isset($_SESSION['user_name']))
{
session_destroy();
session_unset();
header('Location:Login2.php');
}
else
{
echo "error";
}
?>
它进入 else 部分意味着显示错误。
你有很多不需要的代码。例如,只有当用户实际登录正确时才会显示您的注销链接,因此if-else
声明中确实没有意义。
将其缩短为:
<?php
session_start();
session_destroy();
header('Location:Login2.php');
?>
我的意思是,如果您要销毁会话,那么检查天气或用户未登录确实没有意义。假设路径http://yourdomain.com/logout.php如果用户未登录,则可以很好地指向该脚本在并且他以某种方式访问了这条路径并没有真正发生任何事情,但是如果他已登录,您真的不应该关心是否设置了 SESSION 变量,因为无论如何您都将销毁它。
调用session_destroy()
使session_unset()
重复和不必要的需要。还要调用die()
after header()
,否则其他所有内容仍然执行并且重定向失败。
<?php
session_start();
if(isset($_SESSION['user_name']))
{
session_destroy();
header('Location: Login2.php');
die();
}
else
{
echo "error";
}
?>
仍然有很多冗余的逻辑和代码,所以这里是最佳解决方案:
注销.php
<?php
session_start();
session_destroy();
header('Location: Login2.php');
die();
?>