【问题标题】:Coldfusion 8 Cookies disappearing mid-session with IE8Coldfusion 8 Cookie 在 IE8 会话中消失
【发布时间】:2015-05-22 01:22:44
【问题描述】:

我正在处理大约 10 年前使用 Coldfusion 8 编写的票务系统。当用户通过身份验证并登录时,用户有关其 ID 的信息保存在 CF cookie 中,站点使用这些 cookie 填充它用户填票时的用户ID、姓名等。

此应用程序在 Internet Explorer 6.0 中运行良好但是我们正在慢慢迁移到 Internet Explorer 8,因此这里有一些用户已经开始全职使用 IE8。我们收到了一些 IE8 用户的投诉,在会话中,cookie 丢失/变为空,用户无法完成工单。用户可以正常登录,但有时在会话中会出现“NAME UNDEFINED”之类的错误。它们似乎并不局限于特定的票证,因为我查看了我们的所有投诉,并且在各种票证中都发现了它们。我检查了日志/屏幕截图,果然,员工 ID 的 cookie 为空。我已经在整个网络上进行了搜索,但找不到很好的解决方法。

我曾考虑将 cookie 转换为会话变量,但这将是一项艰巨的任务,需要进行大量测试。

有什么想法吗?提前致谢。

【问题讨论】:

  • 您列出的错误表明会话范围内缺少数据,而不是 cookie 范围内。您是否遇到会话丢失或 cookie 数据消失的问题?
  • 我遇到了 cookie 数据消失的问题。我正在使用 HTTPWatch 并监视 cookie。总是一个 cookie 消失/变为空,但其他 cookie 保持正常。另外,这个问题只发生在 IE8 中……使用 IE6 的用户不要向我报告这个问题。 cookie 已经过期 = NEVER 所以我认为这不是 cookie 过期的问题..?
  • 我希望我在十年前使用 ColdFusion 8 :)
  • 哈哈哈。好点子,夏兰。 10 年大约是 6 年。
  • 哦,对不起。我的意思是写它目前在 Coldfusion 8 上。我不确定我之前的人在开发这个时使用的是什么版本...

标签: cookies coldfusion internet-explorer-8 coldfusion-8


【解决方案1】:

域名有可能发生变化吗?您可能在 www.servername.com 和 servername.com 之间切换?除非您正在编写域 cookie,否则域中的更改将导致为一个域写入的 cookie 无法从另一个域访问。您可以在 Application.cfm 或 Application.cfc 文件中启用域 cookie。在 Application.cfc 中设置 <cfset this.setDomainCookies = true /> 或在 <cfapplication /> 标记上设置 setDomainCookies="true" 属性。这将写入可从任何子域访问的 cookie。

cookies 过期了吗?您可以设置 cookie 的到期日期。也许它在用户会话到期之前就到期了?

您是否尝试过使用 IE 开发工具栏来跟踪 cookie?您可以使用它来查看为您的网站设置的 cookie。

【讨论】:

  • 我一直在使用 HTTPWATCH 来尝试监控 cookie。在代码中,所有的 cookie 都设置为 expires = NEVER。奇怪的是,当我在 HTTPWATCH 中检查用户的会话时,只有 一个 cookie,员工的 ID 变为 NULL。所有其他 cookie(员工姓名等)仍然具有正确的值。我很确定我们不会切换域名...
【解决方案2】:

在我的一个应用程序中,我们的用户面临着同样的问题。它突然启动,代码没有任何变化。我们建议他们清除缓存并 tr-try 并且它有效。但我需要知道根本原因及其修复。 谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多