我正在整合登录页面(固定用户名和密码)。
用户登录后,他将被重定向到另一个页面'x'(在我的服务器上)。
但是,当用户关闭浏览器(或标签页)并重新打开它时,他会自动被定向到页面'x',而无需询问用户名和通过。
但是,如果我从我的浏览器(firefox)设置中删除cookie,事情就会恢复正常。删除缓存不起作用。
我知道我需要插入几行代码来删除cookie。 我的问题是,
下面是我的代码。
<?php
session_start();
if(isset($_POST['username'])){
if(($_POST['username'] == "user") && ($_POST['password'] == "pass"))
{
$_SESSION['secured'] = "Secured";
}else{
echo "Wrong username and password. <p>
<a href='?'retry</a>";
}
}
if(!isset($_SESSION['secured']))
{
echo "<form method='post'>
Username: <input type='text' name='username' maxlength='10' /><br>
Password: <input type='password' name='password' maxlength='10' /><br>
<input type='submit' value='login' />
</form>";
}else{
?>
<html>
<head>
<title>Session Login</title>
</head>
<body>
<p>redirecting....
<meta HTTP-EQUIV="REFRESH" content="1; url=http://x.php">
</p>
</body>
</html>
<?php
}
?>
答案 0 :(得分:1)
如果您可以创建一个会破坏会话的logout.php页面:
unset($_SESSION['secured']);
header('Location: login.php');
exit;
只需访问该页面即可销毁登录信息。
如果您希望会话在预定时间段后超时,则可以使用类似于in this example所示代码的内容。
如果你想在用户登陆x.php后杀死会话
<?php
session_start();
//First make sure that they're allowed access to x.php
if(!isset($_SESSION['secured'])){
//They shouldn't be here.
header('Location: login.php'); //Redirect back to your login page
exit;
}
//Ok, user is obviously logged in. Unset the session variable so that they can only view this page once (unless they login again)
unset($_SESSION['secured']);
//Show content of x.php