为什么代码库中的更改/出错有时会破坏Codeigniter/PHP中的会话?

为什么代码库中的更改/出错有时会破坏Codeigniter/PHP中的会话?,php,codeigniter,session,Php,Codeigniter,Session,为什么在代码库中更改/出错有时会破坏Codeigniter/PHP中的会话?我搞不懂为什么有时会发生这种事,而不是其他的,这让我发疯 我想知道调用sess_destroy()的触发器是什么。只有当脚本包含将数据写入会话的代码时,才能销毁会话吗?我想我想弄清楚的是,是否有重定向脚本烘焙到codeigniter/php中,以便在解析错误时销毁会话,即使我没有明确调用以更新会话数据 谢谢 tim如果您在代码中做了一些更改,导致解析错误或其他类型的致命错误,那么php可能无法将数据写入会话-因为在php

为什么在代码库中更改/出错有时会破坏Codeigniter/PHP中的会话?我搞不懂为什么有时会发生这种事,而不是其他的,这让我发疯

我想知道调用sess_destroy()的触发器是什么。只有当脚本包含将数据写入会话的代码时,才能销毁会话吗?我想我想弄清楚的是,是否有重定向脚本烘焙到codeigniter/php中,以便在解析错误时销毁会话,即使我没有明确调用以更新会话数据

谢谢


tim

如果您在代码中做了一些更改,导致解析错误或其他类型的致命错误,那么php可能无法将数据写入会话-因为在php调用会话_write()之前,脚本就会死亡,php通常会在脚本结束时自动执行此操作

所以,如果php从来没有机会调用session_write(),那么会话数据就会丢失


你应该检查你的php错误日志,看看你是否有任何致命错误,找到它们的来源并修复你的脚本。

好吧,你做了什么更改?嗨,达米恩,我不确定。当这种情况发生之前,我已经做了很多更改,所以我已经失去了什么可能会破坏会话的轨道。我问这个问题是希望能更好地理解破坏会话的触发器。你能看到我上面更新的问题吗,这开始更深一层了?谢谢,嗨,德米特里,谢谢你的建议。那么,这是否意味着只有当我的脚本包含将数据写入会话的代码时,会话才能被销毁?我想我想弄清楚的是,他们的重定向脚本是否被烘焙到codeigniter/php中,以便在解析错误时销毁会话,即使我没有明确地调用更新会话数据。您可以在脚本中手动调用session_write_close()。当您知道会话数据不再更新时,立即调用session_write_close()不是一个坏主意。通过这种方式,您可以确保会话数据被保存,即使脚本在此行之后死亡,您的会话也将被保存。请看这里的文档嗯,我想保留用户更新某些会话数据的能力,例如他们的姓名、图片
src=“”
,等等。在我想显示用户姓名、图片等的每个地方访问数据库似乎很愚蠢。这会不会限制
会话写入关闭()的有用性?