我想知道如何在此方法中取消设置会话。
这是我的代码
<?php include ('common/config.php');
session_start();
$curLocation = $_SESSION['curLocation'];
if($curLocation=='')
{
$curLocation='london';
}
?>
我这样做
<?php
session_destroy();
if ($curLocation='london')
{
unset($_SESSION['curLocation']);
}
?>
答案 0 :(得分:2)
请检查您的代码是否正确
您的错误代码
if ($curLocation='london')
正确
if ($curLocation=='london')
答案 1 :(得分:1)
要销毁会话,您只需要:
<?php
session_start();
session_destroy();
?>
你不需要取消任何东西,因为无论如何你都要摧毁它。
但是,如果您只想取消设置特定变量,请执行以下操作:
unset($_SESSION['variableName']);
此外,此代码:
$curLocation = $_SESSION['curLocation'];
if($curLocation=='')
{
$curLocation='london';
}
可以写成:
if(! isset($_SESSION['curLocation']) ){
$_SESSION['curLocation'] = 'london';
}
答案 2 :(得分:0)
使用两个=
而不是一个
<?php
session_destroy();
if ($curLocation=='london') //here
{
unset($_SESSION['curLocation']);
}
?>
您正在做的是为$curLocation
分配一个值,而不是将其与某些内容进行比较
答案 3 :(得分:0)
最简单的版本:
unset($_SESSION['varname']);
或
session_destroy();
如果要创建LOGOUT脚本,请尝试以下方法:
// Clear session variables.
$_SESSION = array();
// Note: This will destroy the session, and not just the session data!
if(ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Destroy the session.
session_destroy();
// Set message
echo "Signing out..";
// Redirect to login page
header("Refresh:3; url=login.php", true, 303);
答案 4 :(得分:0)
在php中取消设置会话值使用session_destroy()函数,如果要单击注销按钮,则会销毁会话值并重定向到登录页面,因此请按照此代码在Web应用程序中尝试:
<?php
session_start();
session_unset($_SESSION['user_id']); //to ensure you are using same session
session_destroy(); //destroy the session
echo "<script>window.location.href='index.php'</script>"; //to redirect back to "index.php" after logout
exit();
?>