【问题标题】:ColdFusion Deleting a session variableColdFusion 删除会话变量
【发布时间】:2012-05-14 07:37:22
【问题描述】:

我已经四处寻找可以删除会话变量的代码,而我成功的关键在于:

<cfset StructDelete(Session,"username")>

它第一次起作用,然后它就再也不起作用了。我在过去的一个小时里一直在做这件事,我快疯了,任何帮助都将不胜感激。

我不确定这是否相关,但是当我出于某种原因修改 .cfm 时,它似乎并不总是立即“更新”。我的意思是,我会更改一个页面,访问它并且它不会使用新代码。尝试调试时这很可怕......

【问题讨论】:

  • 这是删除会话变量的正确方法。如果它回来了,那么您将在某个地方再次设置它或更改会话。对于您的缓存问题,我会查看受信任的缓存是否已打开。
  • 你应该把你的问题分成不同的帖子。
  • “它永远不会再工作了” - 它有什么作用(或没有作用)?抛出错误?根本不删除密钥?
  • @Busches 信任缓存已关闭,请保存类文件。
  • @Jake Feasel 我知道了,所以每次我运行代码时,它都会重定向到输出会话的页面。从技术上讲,它不应该输出任何东西,但它确实输出了。

标签: session coldfusion session-variables coldfusion-9


【解决方案1】:

我只是 cfset 会话变量来杀死它...

 <cfset session.allowin = "False">

而且 application.cfm 文件总是在寻找真...

【讨论】:

    【解决方案2】:

    我怀疑你的意思是它会重新存在,而你认为​​它应该消失。查找设置变量的任何“cfparams”。它可能会被删除,然后在下一个请求时重新启动。

    您还可以添加一个布尔值,以在删除时检查它是否存在。

    <cfset exists= structdelete(session, 'username', true)/>  
    

    如果它存在,这会给你一个“是”,如果它不存在,它会给你一个“否” - 如果你愿意,你可以执行进一步的逻辑。

    您还可以查看您的应用程序名称、会话超时值 onsessionStart() 等。我已经看到每个请求都实例化一个新会话的问题。

    【讨论】:

    • 你首先在哪里设置这个变量?我认为 Mark 走在正确的道路上,在您删除它后它会立即重置。
    • Sharondio - 您目前正在签订合同吗?是在东弗吉尼亚吗?目前正在签订合同? (目前正在东海岸寻找资源:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 2013-07-14
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多