微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找不到会话变量

如何解决找不到会话变量

很长一段时间以来,我都遇到了会话变量的问题。我正在寻找一些指示或方向来解决这个问题。我试图解释正在发生的事情,我明白所提供的信息不足以理解正在发生的事情,但我正在努力解决这个问题,这让我发疯:-)

我有几个 lucee 网络应用程序(lucee:5.3.7.48),它们也可用作 Cordova 应用程序。错误信息通过电子邮件发送给我。我每天收到大约 100 条无法找到会话变量的消息。

enter image description here

enter image description here

[APP] 是会话变量,在文件 index.cfm 中设置。

         <cfparam name="SESSION.auth.app" default="">

在第 592 行有类似的东西 <cfif session.auth.app is 1>do something</cfif>

我不想关注第 592 行,真正的问题是会话变量丢失了。接下来发生的是用户重定向登录页面(login.cfm),因为会话丢失然后问题重复,这是一种循环。该应用程序具有保存用户名/密码选项。

这一切都发生在应用程序在后台运行时,就像 Cordova 应用程序在后台运行一样。我知道这一点是因为我在收到 20 条错误消息时联系了一位用户,他告诉我在错误消息出现时我没有使用该应用程序。

总而言之,我会在用户使用 login.cfm 页面时对其进行测量。正如您在图片中看到的,3 月 16 日出现了使用高峰,这与所描述的问题有关。

enter image description here

我知道我没有提供太多有用的信息来继续,但有人能给我一些如何解决这个问题的指导吗?

4 月 14 日更新

我改变了会话变量的设置方式并遵循了反应中的建议。

application.cfc 中我添加了:

<cffunction name="onSessionStart" access="public" returntype="void" output="false" hint="I fire when a new session begins.">
    <cfset SessionRotate()>
    <cfset SESSION.app = ''>
    <cfset SESSION.device = ''>
    <cfset SESSION.app_file_url = 'window.open'>
</cffunction>

重新启动 lucee 只是为了确定。但是还是一样的错误信息,APP不存在。经过一些额外的搜索,我发现:https://www.bennadel.com/blog/1535-coldfusion-session-is-always-created-even-if-onsessionstart-fails.htm

这可能是 lucee错误吗?你有更多的建议可以尝试吗?

解决方法

在你的 onSessionStart 函数中,你能把它改成这个吗?

<cfset session.auth = {}>

<cfset session.auth.app = ''>

我看到您正在检查 <cfif session.auth.app is 1>do something</cfif>,它应该定义了 session.auth 以使其正常工作。

希望以上内容有所帮助。

另外,我有兴趣知道你在屏幕上倾倒了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。