ColdFusion错误:“ERROR中未定义元素REMOTEADDRESS”。我如何解决它?

时间:2011-02-28 19:49:43

标签: coldfusion

我有一个自定义的ColdFusion错误页面,经常在机器人扫描页面后反复返回以下错误:

在ERROR中未定义元素REMOTEADDRESS。 错误发生在###(页码)上。

我不确定为什么它会返回这个未定义的元素错误,或者是否有办法解决它,除了删除#error.remoteAddress#code。

我的代码如下所示:

<cferror type="REQUEST" template="error.cfm" mailto="email@domain.com">
<cfoutput>
 <ul>
  <li><strong>Your Location:</strong> #error.remoteAddress#
  <li><strong>Your Browser:</strong> #error.browser#
  <li><strong>Date and Time the Error Occurred:</strong> #error.dateTime#
  <li><strong>Page You Came From:</strong> #error.HTTPReferer#
  <li><strong>Error Diagnostics</strong>:
  <p>#error.diagnostics#</p>
 </ul>
</cfoutput>

3 个答案:

答案 0 :(得分:3)

您应该使用Edward的解决方案来验证变量的存在,或者使用cfparam值使其始终存在:

<cfparam name="Error.remoteAddress" default="No Remote Address" />

答案 1 :(得分:2)

如果您不想完全理解此处的整体逻辑,如果您希望能够在尝试评估变量或结构成员之前安全地进行测试,那么您可以执行类似

的操作
<cfif isDefined("error") AND structKeyExists(error, "remoteAddress")>#error.remoteAddress#</cfif>

答案 2 :(得分:2)

remoteAddress仅在request and exception type errors中可用,因此请在显示错误变量之前检查错误类型。

<cfif ListFind("request,exception",error.type)>
   <li><strong>Your Location:</strong> #error.remoteAddress#</li>
</cfif>

您还可以检查错误类型不是“验证”,但我喜欢成为一个积极的人。

PS。注意我关闭了你的清单项目。 ;)