我有一个变量session.acclevel,它是在登录过程中设置的(程序是login2.cfm)。
<cfset session.acclevel = logdata['LOGACCESS'][1]>
值可以是N,R,W,A,M,它们是从我在这里调用XXX的表中使用查询名称=“logdata”检索的。如果登录成功,login2.cfm将重定向到程序navbar.cfm
<cflocation url = "navbar.cfm?welc=yes">
这是一组下拉菜单,而非仪表板。根据{{1}}的值显示更多或更少的选项。整个系统中还使用session.acclevel navbar
变量来控制各种用户活动。
这一切都很好,然后它突然停止工作 - session.acclevel
acclevel`变量类型:
session.acclevel was fine when navbar started up, but disappeared as soon as any selection was made. Yet, no code had been changed. The only thing I had changed was to alter the MySql table definition of the
将选项“M”添加到枚举中。我没有在该表中输入任何数据,我在任何地方都没有对编码进行任何更改。
我仔细检查了超时(我正在使用系统管理员默认值),并尝试没有成功跟踪变量丢失的位置。我关闭并重新打开浏览器,没有修复任何内容。
最后,我去了管理员并将会话管理更改为J2EE - 并修复了它。 alter table XXX change LogAccess LogAccess enum('A','W','R','N','M');
现在仍然存在。
有人可以解释那里出了什么问题吗?我想知道,如果ColdFusion会话管理中的这个缺陷是由我可以避免的弱代码引起的,或者以后它会在J2EE管理下中断。