寄存器
登录
S公司
搜索
在中
包装
此网站(使用Yahoo!)
开发人员
开发人员邮件列表
普通邮件列表
SVN提交邮件列表
主要
支持
文档
包装
项目包建议书
开发人员
漏洞
搜索Bug
程序包错误统计信息
打包回家
|
报告新错误
|
新建搜索
|
发展路线图
状态:
正常开放
|
反馈
|
全部
|
自1.6.4版起关闭
请求编号2765
持久cookie
提交:
2004年11月16日03:58 UTC
发件人:
operamail网站上的jj03
分配:
状态:
正常开放
包裹:
身份验证
PHP版本:
4.3.9
操作系统:
路线图:
(未分配)
订阅
您的电子邮件:
评论
添加注释
添加修补程序
[2004-11-16 03:58 UTC]operamail dot com上的jj03
描述:
------------
目前,所有cookie只适用于当前浏览器会话,并且应该有一种可选的方式来使用持久cookie。
评论
[2005-12-24 15:22 UTC]operamail dot com上的jj04
以下是解决此问题的解决方法:
函数setExpire($time,$add=false){
@setcookie(session_name(),session_id(),time()+$time);
$添加$
this->过期+=$time:$this->到期=$time;
}
〔2007-01-18 08:56 UTC〕gserafini在gmaildot.com
(加布里埃尔·塞拉菲尼)
这个变通方法实际上有效。我会附议一个请求
将这个非常简单的代码修复添加到包中,以便我
无需手动调整PEAR代码安装和
注意升级它和破坏功能。
这个简单的修复程序大大提高了Auth的实用性
启用持久登录状态(对用户非常有用)。
因此,只需再次投票将解决方案添加到文件中。
[2007-03-01 15:55 UTC]巴兹多努托比亚斯
(托比亚斯·巴兹)
此修复程序在IE7中引入了一个错误(可能还有其他错误)。
当使用持久选项登录、注销然后以另一用户身份登录时,应用程序会认为您仍然是另一个用户(使用了错误的sessionid)。
我找到的解决方案是终止Auth::logout()中的持久cookie
我还包括了原始错误描述中提到的可选性,即在Auth::setExpire()中添加了另一个参数(bool)$persistent
我没有太多使用diff的经验,但以下是来自`diff Auth.php newAuth.pph`的输出,其中Auth.php来自CVS(我猜也是在stable中):
577a578号
>*@param bool是否使用持久cookie
581c582个
<函数setExpire($time,$add=false)
---
>函数setExpire($time,$add=false,$persistent=false)
583a585587个
>if($persistent){
>@setcookie($this->_sessionName,session_id(),$this->过期);
>}
1018a10231025
>//取消设置持久cookie
>@setcookie($this->_sessionName,false);
>
[2007-03-04 21:18 UTC]巴兹多努托比亚斯
(托比亚斯·巴兹)
我似乎使用了一个旧副本,代码中有两个错误(2007-03-01 15:55 UTC):
*$this->_sessionName应为session_name()
*在setExpire中设置cookie时,第三个参数($this->expire)应该是time()+$this->expire
差异:
577a578号
>*@param bool是否使用持久cookie
581c582个
<函数setExpire($time,$add=false)
---
>函数setExpire($time,$add=false,$persistent=false)
583a585587个
>if($persistent){
>@setcookie(session_name(),session_id(),time()+$this->expire);
> }
1018a10231025
>//取消设置持久cookie
>@setcookie(session_name(),false);
>