关于session 存入数据库的问题 急急!!! 代码没有问题,注销的时候调用 session_destroy() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if ($_GET['action']=="logout") { session_unset(); session_destroy();}我也是这样用的呀怎么不行呀 PHP手册上的例子试试看:logout.php:<?phprequire('session.h.php');// Unset session data$_SESSION=array();// Clear cookieunset($_COOKIE[session_name()]);// Destroy session datasession_destroy();// Redirect to clear the cookie.$time=time();header("Location: /logged_out.html?cache_defeat=$time");exit;?> 如果你的代码没问题的话,应该是这个情况,其实,调用session_destroy();后,数据库中原来的记录已经删除了,只不过在注销后显示的页面里,有session_start(),调用了sess_write()函数,向数据库里插入了具有相同session_id的session.试试在注销后显示不包含session_start()的页面,然后看看数据库,该条记录应该删除了。个人认为,这并不是问题,这和以files的方式保存session的原理是一样的,因为当以files的方式保存session时,用户即使注销了,该session的文件仍然存在。然后通过自动的垃圾收集的方式将较长时间不更新的session文件删除。当以数据库的方式保存session时,php自动调用sess_gc()函数,将较长时间不更新的session的记录删除。呵呵,说了这么多,不知道能不能解决楼主的问题,只是个人意见。 另外,因为php默认以cookie的方式保存sessionid,所以才会在注销后向数据库中插入相同sessionid的记录,这又涉及到了有关sessionid的传递问题。目前cookie和url重写是比较常用的方法,但都有不足之处。个人认为,如果使用url重写的话,应该能够避免上述的情况。 该问题我也遇到了,我遇到的问题是我发现session_destory之后,数据库中该行数据仍然存在,不同的只是var变量那一个字段的内容没有了,但是session_id的字段和last_accessed字段仍然存在,不知何故。 要不要修改php.ini????php默认的是将session保存到文件,如下session.save_handler = filessession.save_path = "C:\php\savesession"如果保存到数据库,如下session.save_handler = usersession.save_path = "database name" php应该怎么学? $argv这个函数一般在什么情况下用 数组排序问题 求一个php正则提取字符串 php中flash广告点击数 一SQL查多值问题。 转贴(忘了出处和作者了):MySql中管理百万级要注意些什么东西 大虾,快帮忙!我的php配置中出了什么问题?关于session部分! linux下的extensions在那里? 谁有Web在线发送信息到email的PHP代码?高分 php用作命令行的时候 如何得到输入值 正则问题:如何匹配不饮食指定字符串的内容?
session_unset();
session_destroy();
}
我也是这样用的呀怎么不行呀
logout.php:
<?php
require('session.h.php');
// Unset session data
$_SESSION=array();
// Clear cookie
unset($_COOKIE[session_name()]);
// Destroy session data
session_destroy();
// Redirect to clear the cookie.
$time=time();
header("Location: /logged_out.html?cache_defeat=$time");
exit;
?>
调用session_destroy();后,数据库中原来的记录已经删除了,只不过在注销后显示的页面里,有
session_start(),调用了sess_write()函数,向数据库里插入了具有相同session_id的session.
试试在注销后显示不包含session_start()的页面,然后看看数据库,该条记录应该删除了。个人认为,这并不是问题,这和以files的方式保存session的原理是一样的,因为当以files的方式
保存session时,用户即使注销了,该session的文件仍然存在。然后通过自动的垃圾收集的方式将
较长时间不更新的session文件删除。当以数据库的方式保存session时,php自动调用sess_gc()函
数,将较长时间不更新的session的记录删除。呵呵,说了这么多,不知道能不能解决楼主的问题,只是个人意见。
sessionid的记录,这又涉及到了有关sessionid的传递问题。目前cookie和url重写是比较
常用的方法,但都有不足之处。个人认为,如果使用url重写的话,应该能够避免上述的情况。
session.save_handler = files
session.save_path = "C:\php\savesession"如果保存到数据库,如下
session.save_handler = user
session.save_path = "database name"