2013-09-21 52 views
0

的一切,我发现有关此错误消息是说,无论有没有会话启动或者我没有权利,遗憾的是没有这些的就是如此。未能破坏会话对象

我的会话是活动的,到时候我试图摧毁它在我的logout方法我得到

warning: session_destroy(): session object destruction failed

我的症状似乎很喜欢在this问题的那些其中,可悲的是,没有答案。另外,当我尝试退出几次时,它会成功破坏会话。有时需要2次退出5次,它的数量从来不会相同,但它也不会从第一次尝试中破坏它。我觉得这很尴尬,有人能给我一些建议吗?

+1

@alfasin来吧,你认真吗?你甚至读过这个问题吗?我明确表示,在没有给出http://stackoverflow.com/questions/8549757/why-session-object-destruction-failed解决方案是有效的在我的情况 –

+0

你试过先取消设置会话?通常session_destroy应该可以工作,但是你总是可以尝试首先解除错误 –

+0

@jonasvermeulen奇怪的是,我现在拥有这个系统已经有半年多的时间了,它只是开始给我这个垃圾而没有改变任何东西。解封是不是一个真正的选择,因为除了它不是一个相当不错的解决方案,我还需要为未受到规则:( –

回答

0

我只是发现了什么问题,而且看起来非常怪异,不合逻辑的。

我的退出按钮是一个锚标记,而我和我的现场测试的东西玩弄,我开始窃听标签,看看我能在一个普通的页面注重哪些元素。我注意到,菜单通道中的所有按钮都可以关注,但注销按钮除外,这是由于缺少href属性,所以我添加了一个空href属性,以便可以通过Tab键聚焦。显然,一个空href标记重定向到根(我想这是由于我使用的<base>标记)。所以每次我点击注销按钮时,我都会被重定向到主页面(我一开始并没有注意到这一点,因为我实际上在那个页面上,正确的说法),这显然会阻碍ajax会话的发展通过点击非常相同的按钮发送的请求。我的假设是,PHP会失败销毁会话对象,因为它正在使用中,加载我已重定向到自己的页面,有时注销工作,因为重定向很慢,并且在php开始创建之前及时执行ajax调用新的页面。

我已删除的href属性,一切工作现在..我想请您发表评论我是否正确或错误,并可能给出正确的答案,谢谢!

+0

我认为我的问题可能有是一个访问sesion文件并且崩溃的进程,或者也许我的文件系统已经损坏......但是我再也没有遇到这个问题,所以我猜你的问题是不同的 – maja

+0

只是有同样的问题。一个href属性,删除属性解决了问题。 –

0

试试这个soluation:

<?php 

session_start(); 
$_SESSION = array(); 

if (isset($_COOKIE[session_name()])) { 
    setcookie(session_name(), '', time()-42000, '/'); 
} 
session_destroy(); 
?>