0

我有一个简单的电子邮件表单和支持它的 CF 脚本。这一切都应该是显而易见的,但是脚本抛出了有效的输入。我已经验证了预期值在标题中,并且我可以在脚本中输出值,但它不喜欢输出之外的任何值。

这是我的 HTML:

<form id="email" name="email" method="post" action="scripts/email.cfm">
  <fieldset>
    <legend>Email Student Government:</legend>

    <!-- PASS NAME (to query email) to the script -->
    <input type="hidden" name="who" id="who" value="Example User">

    <label for="from">Your Email:</label><br>
    <input type="email" id="from" name="from"><br>
    <label for="message">Message:</label><br>
    <textarea id="message" name="message" rows="4"></textarea>
    <input type="submit" name="send" id="send" value="Send Email">
  </fieldset>
</form>

ColdFusion(包括顶部的调试脚本):

<!--- member email addresses, hashed by name --->
<cfinclude template="emailHash.cfm">
    <cfoutput>
        #FORM.SEND#
        #FORM.WHO#
        #FORM.FROM#
        #FORM.MESSAGE#
    </cfoutput>

<cfif isdefined("FORM.SEND") and FORM.SEND eq "Send Email">
    <cfmail from="Example User <example@example.com>" 
            to="#FORM.WHO# <#emailHash['FORM.WHO']#>" 
            bcc="Example User <example@example.com>" 
            replyto="#FORM.FROM#"
            subject="Email Form Submission">
    Message: #FORM.MESSAGE#
    Date / Time Sent: #dateformat(now(), "yyyy/mm/dd")# at #timeformat(now(), "HH:mm:ss tt")#
    </cfmail>
</cfif>

如果我运行脚本,则会打印逻辑输出,但是即使该FORM.WHO值已明确定义并且在之前的输出中打印得很好,也会出现此错误:

Element FORM.WHO is undefined in a CFML structure referenced as part of an expression.

我对我认为是一个简单的项目感到非常恼火,所以任何朝着正确方向的轻推将不胜感激!

PS:我认为 HTML5 输入类型可能会导致问题,所以我尝试将它们换成普通text类型,但这没有任何好处。

4

1 回答 1

4

问题不在于您的表单变量,而在于:

#emailHash['FORM.WHO']#

您的错误是说变量不存在(错误消息的其余部分应指向该代码所在的行号?您没有发布该位...)。从您发布的内容来看,没有证据表明确实如此。

里面发生了什么emailHash.cfm

于 2012-09-25T06:07:07.517 回答