首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

PHP的session与cookie问题

我用PHP开发一个网站,现在碰到了一个问题,要记录用户登陆的信息,如果用cookie的话,可以设置它的有效期,但浏览器关闭时却还保存着它的cookie,没有删除掉,但我想在浏览器关闭的时候同时也清除了cookie,这样行不通,后来我选择了使用session,它可以在浏览器关闭的时候把session清空,但是不知道在哪里设置它的有效期,在网上写着使用session与cookie,于是我就使用设置session时间的cookie,但是设置完后同样的关闭浏览器时没有清除掉,现在不知道该如何做,请大侠们帮帮忙。下面是我的代码,请看看:
login.php
session_start();
...
$_SESSION["UserName"]=true;
setcookie(session_name(),session_id(),time()+30,'/','',0);
...
echo " <script language=javascript>window.location.href='index.php' </script>";

index.php
session_start();
if(!isset($_SESSION["UserName"]) && $_SESSION["UserName"]!=true){
echo " <script language=javascript>alert('您的Cookie已过期,请重新登录!') </script>";
}
昵称: xdshen  时间: 2008-08-20 17:44:21
session只是cookie的应用

在浏览器关闭的时候删除cookie 应把cookie生存期设定为现在或者以前 在不关闭浏览器到时候是不会删除的

session生存期在php.ini中有设定
昵称: ten789  时间: 2008-08-21 03:20:31
session 和 cookie 是一起用的
昵称: justicesun  时间: 2008-08-21 03:28:19
首先 session是基于cookie的,但cookie可独立于 session

如果用session你的那个cookie(session_id)下次启动时会被覆盖,虽然仍存在(但无效)

session的关闭主要是指session_id具有浏览器生存期

只要cookie的名不等于session_id,则是独立于session的


昵称: fxs_2008  时间: 2008-08-21 10:15:51