php cookie 没有过期,好像cookie有过期时间,session没有过期时间?

用户名或密码错误。

'; include $_SERVER[DOCUMENT_ROOT] . '/template/footer.php';exit(); }else{ echo "$login_email ".',欢迎来到' . WEBSITE_NAME . '。';//写入session。$_SESSION["save_username"]="$login_email";} //设置setcookie. setcookie("setcookie","$login_email",time()+60);//设置一个小时过期。?>

欢迎 ,你已登录。 退出登录 欢迎管理员 , 退出登录 欢迎来自的朋友,请注册 或 登录

顺便问问我这个退出好像有点别扭。

unset($_SESSION); session_destroy(); if(!$_SESSION) { echo "退出登录成功。

2秒之后返回首页。"; //header("refrech:2;URL=http://www.09-29.com/"); header("refresh:1;url=/"); }

回复讨论(解决方案)

session是基于cookie实现的,不可能不过期

header函数之前不能有输出

测试几次,

注释unset($_SESSION);用session_destroy();结果没看到什么不同啊?

session_destroy();听说是注销整站session。

我用a、b浏览器同时登录,在a浏览器注销,浏览器没有退出?

cookie里有个phpsessid , 每个ssid对应一个session文件。不同浏览器登录,你的ssid有做过同步吗? 很明显你的ssid肯定是不同的,那么其实你两个浏览器对应的是两个session,你注销了a,跟b有什么关系

测试几次,

注释unset($_SESSION);用session_destroy();结果没看到什么不同啊?

session_destroy();听说是注销整站session。

我用a、b浏览器同时登录,在a浏览器注销,浏览器没有退出?

cookie是配合session来使用的,每个浏览器的cookie是独立的,不是说a浏览器退出了,b浏览器就一定会退出。

cookies与session都有过期时间。

session是依赖cookie的。

session.auto_start 开启就自动完成了session_start()

区别就在于在用SESSION前是否需要session_start();

session.auto_start = on

时,执行 session_start() 将产生新的 session_id

session.auto_start = on 的优点在于,任何时候都不会因忘记执行 session_start() 或 session_start() 在程序里的位置不对,而导致错误

缺点在于,如果你使用的是第三方代码,则必须删去其中的全部 session_start() 。否则将不能得到正确的结果

上面回复忽略……

默认情况下session是基于cookie来存储的,注销掉session的同时,也要注销掉cookie。

sessionid 通过 cookie 传递

可通过 session.cookie_lifetime 设置过期时间(默认是0)

但须注意与 session.gc_maxlifetime 的配合

另外

setcookie("setcookie","$login_email",time()+60);//设置 一个小时过期

这个注释是错误的!应为 一分钟

session和cookie都会过期的

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值