首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP结束会话(不同的方式)我不明白

PHP结束会话(不同的方式)我不明白
EN

Stack Overflow用户
提问于 2013-04-07 04:16:30
回答 2查看 167关注 0票数 4

我正在尝试理解会话以及一些结束会话的函数是如何工作的。我去过不同的网站,甚至在这里,基本上,什么都不起作用。

我有一个我正在尝试的应用程序,当用户登录时,我像这样存储用户名(不打算粘贴整个代码,但你明白了)

代码语言:javascript
复制
if($row == 1){
    session_start();
    $_SESSION['usrname'] = $login_usrname;
    $_SESSION['usrpass'] = $login_usrpass;
    header("Location:index.php");
    exit;
}

在上述应用程序的首页上,我有一个这样的检查

代码语言:javascript
复制
session_start();
if(!isset($_SESSION['usrname']) && !isset($_SESSION['usrpass'])){ 
    header("Location:login-acc.php");
    exit;
}

它会让他们进来。我检查了firefoxes web开发工具中的cookie,我看到它正在生成,所以到目前为止我将说“它在工作”。

现在,当我想注销时,长话短说,我有一个注销链接,它将他们带到一个页面,该页面应该清除所有会话数据,并将他们重定向到登录页面。当我测试应用程序并单击注销链接时,我被重定向到登录页面,但当我返回并单击“索引页面”链接时。它能让我直接进去。

在注销文件中,尝试强制问题在overkill笑,我有这个,但似乎没有什么工作。

代码语言:javascript
复制
unset($_SESSION['usrname']);
unset($_SESSION['usrpass']);

session_unset();

$_SESSION = array();
session_destroy();

setcookie('PHPSESSID', '', time()-3600,'/', '', 0, 0);

header("Location:login-acc.php");
exit;

它会将我重定向到登录页面,但当我手动转到索引页面时,它会让我直接进入。或者在被重定向到登录页面后,我点击“上一步”按钮,让我也直接进入。

如果我随后进入FF Web developer tools应用程序并删除所有cookie等,并导航到索引页面,那么它会将我锁在外面。

正如你在上面看到的,我尝试了很多东西,最后,我把它们都放在一起,这应该会有一些效果。我的问题是,既然我已经放入了所有这些函数来尝试删除/取消设置/删除会话,我还能做什么呢?我对它的工作原理有点迷惑。

有人能给我指引正确的方向吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-07 04:20:44

您的注销页面顶部缺少session_start()。它正在尝试修改一个不存在的会话!

票数 2
EN

Stack Overflow用户

发布于 2013-04-07 04:31:15

您必须启动会话才能结束会话。我建议你看看...http://php.about.com/od/advancedphp/ss/php_sessions_3.htm

代码语言:javascript
复制
// you have to open the session to be able to modify or remove it 
session_start(); 

// to change a variable, just overwrite it 
$_SESSION['size']='large'; 

//you can remove a single variable in the session 
unset($_SESSION['shape']); 

// or this would remove all the variables in the session, but not the session itself 
session_unset(); 

// this would destroy the session variables 
session_destroy(); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15855550

复制
相关文章

相似问题

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