首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php缓存与cookie

php缓存与cookie
EN

Stack Overflow用户
提问于 2013-03-27 09:42:28
回答 1查看 3.2K关注 0票数 1

我正在集成一个登录页面(固定用户名和密码)。

一旦用户登录,他将被重定向到另一个页面'x‘(在我的服务器上)。

但是,当用户关闭浏览器(或选项卡)并重新打开它时,他将自动被定向到页面'x‘,而不需要询问用户名和传递。

但是,如果我从浏览器(firefox)设置中删除cookie,事情就会恢复正常。删除缓存不会做任何事情。

我知道我需要插入几行代码来删除cookie。我的问题是,

  1. 这是百分之百的饼干问题吗?还是我也需要防止存储到本地缓存中?
  2. cookie预防发生在哪个级别?在登录期间还是重定向?
  3. 一旦我被重定向到页面'x',在那里放置一个注销按钮是否可以退出重定向的会话?

下面是我的密码。

代码语言:javascript
复制
<?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
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-27 10:00:33

如果您可以创建一个将破坏会话的logout.php页面:

代码语言:javascript
复制
unset($_SESSION['secured']);
header('Location: login.php');
exit;

只需访问该页面,登录将被销毁。

如果希望会话在预定时间之后超时,则可以使用类似于in this example的代码。

如果您想在用户登陆x.php之后终止会话

代码语言:javascript
复制
<?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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15655714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档