Php CodeIgniter“;sess“时间”至“更新”;还有印地饼干

Php CodeIgniter“;sess“时间”至“更新”;还有印地饼干,php,delphi,codeigniter,cookies,indy,Php,Delphi,Codeigniter,Cookies,Indy,我基本上是登录到服务器,将cookie保存在一个全局cookie管理器中,然后在线程中上传文件(使用Delphi 2010+Indy 10.4736) 每个线程读取全局cookie管理器并上载文件。服务器端,我将PHP与CodeIgniter一起使用 一切正常,只是CodeIgniter在配置中有这个sess\u time\u to\u update设置 此*sess_time_to_update*默认值为300秒,之后是CodeIgniter 这对安全性来说是很好的,但这也会使我在indy中的

我基本上是登录到服务器,将cookie保存在一个全局cookie管理器中,然后在线程中上传文件(使用Delphi 2010+Indy 10.4736)

每个线程读取全局cookie管理器并上载文件。服务器端,我将PHP与CodeIgniter一起使用

一切正常,只是CodeIgniter在配置中有这个sess\u time\u to\u update设置

此*sess_time_to_update*默认值为300秒,之后是CodeIgniter

这对安全性来说是很好的,但这也会使我在indy中的登录/cookie信息无效

我的问题是:如果不调整*sess\U time\U to\U update*,我如何避免这种情况?Indy中是否有一些设置使其知道会话id?我是否应该添加计时器并每隔300秒(或更短)自动重新登录?让印地处理这种情况的最佳方法是什么

谢谢


编辑FWIW:全局cookie管理器包含

当CodeIgniter生成新会话时,它应该在cookie中包含它发送的每个响应的会话ID。更新您的全局cookie列表,以便后续请求将使用新ID,而不是继续使用原始值。

当CodeIgniter生成新会话时,它应在其发送的每个响应的cookie中包含会话ID。更新全局cookie列表,以便后续请求将使用新ID,而不是继续使用原始值。

我没有pb访问旧会话ID(从全局cookie管理器),但在响应中找不到新会话ID(即
IdHTTP.response.RawHeaders.Text
)。你的意思是我应该从PHP脚本发送新的会话id吗?如果CodeIgniter正在更改会话id,并且希望延长的会话能够保持打开状态,那么它需要以某种方式将新的会话id发送回客户端,否则更改id就没有意义了;它可以完全终止会话。Cookie是向客户发送此类信息的常用方式。您还可以通过其他方式获得更改通知?是的,我知道,但正如我所说,我无法在
Indy.Response
或Indy的
CookieManager
中找到新的会话id。因此,除非我重新登录或再次显式发送会话id,否则cookie管理器将使用旧会话idOK,结果是,在添加cookie时弄乱IdHTTP.Request.RawHeaders会导致indy无法正确处理cookie。我删除了该代码,并确保全局Cookie管理器已更新,现在一切正常。我没有pb访问旧会话id(从全局Cookie管理器),但在响应中找不到新会话id(即
IdHTTP.response.RawHeaders.Text
)。你的意思是我应该从PHP脚本发送新的会话id吗?如果CodeIgniter正在更改会话id,并且希望延长的会话能够保持打开状态,那么它需要以某种方式将新的会话id发送回客户端,否则更改id就没有意义了;它可以完全终止会话。Cookie是向客户发送此类信息的常用方式。您还可以通过其他方式获得更改通知?是的,我知道,但正如我所说,我无法在
Indy.Response
或Indy的
CookieManager
中找到新的会话id。因此,除非我重新登录或再次显式发送会话id,否则cookie管理器将使用旧会话idOK,结果是,在添加cookie时弄乱IdHTTP.Request.RawHeaders会导致indy无法正确处理cookie。我删除了该代码,并确保全球cookies管理器已更新,现在一切正常