为什么ColdFusion中的表单超时?

时间:2011-02-24 20:07:16

标签: forms coldfusion session-timeout coldfusion-8

我们在CF 8上,我们有一个CF应用程序,指定了1小时的会话超时。

<cfapplication sessionmanagement="yes" sessiontimeout="#CreateTimeSpan(0, 0, 60, 0)#" name="myAppName" clientmanagement="yes">

在CF管理员中,我们的默认会话超时为1小时,最大会话超时为1天。

我们在提交常规表格(不是flash表单)时遇到一些奇怪的(间歇性)表单超时问题......

假设用户在上午10:30点击表单页面。 (我知道这是因为我将时间附加到表单标签的“Action”属性)。在上午11点10分,用户提交表单,但没有任何表单结构可用于操作页面,因此用户收到错误。

我知道它来自正确的页面,因为CGI.referrer已正确定义。

在我的自定义错误处理程序中,我遍历任何表单,会话或客户端结构 - 并且此时没有定义任何表单结构。所有其他会话和客户端变量仍然可用。

摘自表单页面:

<cfform name="chairsComment" id="chairsComment" action="library/save_chairsComment.cfm?Start=0224_153027" method="post" > 
  <input name="chairsCommentNumber" id="chairsCommentNumber"  type="hidden" value="13" />
  <textarea name="comment_13" rows="50" wrap="virtual" cols="100" id="comment_13" ></textarea>
  <input name="save_answer" id="save_answer"  type="submit" value="Save Response" />
</cfform>

对于Action页面,它会在第1行引发错误:

<cfset whichCommentNumber = form.chairsCommentNumber>

它在测试期间有效,但当某些用户使用它时,它会抛出错误“Element CHAIRSCOMMENTNUMBER在FORM中未定义”。我们刚刚开始查看这个人正在使用的特定浏览器(Safari 4.0.3),并要求他升级到5.x,但是如果SUCH是一个香草形式,它似乎不太可能是罪魁祸首。

任何想法?

1 个答案:

答案 0 :(得分:0)

在关于Ray Camden关于file uploading的博客的讨论中,有人提到了Safari 4.0.5 throwing an error的问题,因为表单字段不包含文件......它不一样问题,必然,但它可能是相关的。不幸的是,评论者从未返回更多信息。

另一篇博客here上有一篇帖子,评论者提到了Safari的问题以及cfform标记内的cfdiv。如果您的cfform具有相似的嵌套效果,则可能需要颠倒顺序(在表单中嵌套cfdiv)才能使其正常工作。