在ColdFusion服务器/开发环境中运行以下实验:
1)创建以下基本HTML表单,使用发布方法提交给自己:
<form method="post">
DATE: <input type="text" name="date" value="gfsgfdgfsd"><br>
MARTIN: <input type="text" name="martin" value="beardy"><br>
PAYMENT: <input type="text" name="payment" value="50 POUNDS"><br>
PAYMENT_DATE: <input type="text" name="payment_date" value="06:05:13 Apr 09, 2014 PDT"><br>
XEVI: <input type="text" name="xevi" value="cool"><br>
<input type="submit" value="submit"><br>
</form>
<cfdump var="#FORM#" />
现在访问该页面并点击Submit
按钮。请注意,您收到错误Form entries are incomplete or invalid
。现在删除&#39;羁留&#39;从PAYMENT
字段的末尾开始,因此该值仅包含数值。重新提交表单并注意错误消失。
2)现在研究FORM结构的CF Dump。请注意PAYMENT_DATE
元素下逗号分隔列表中缺少FIELDNAMES
的方式!显然它存在是因为它作为转储中倒数第二个元素可见。那为什么没有列出?
注意:这个奇怪的错误在我尝试集成PayPal IPN(即时付款通知)通知验证/验证阶段时浪费了4个小时,这需要您将所有内容发回PayPal服务器,其中包含提交给您时的顺序相同。由于缺少payment_date
,因此返回 INVALID 。我修复了一个脏的hack,在循环遍历字段名并手动插入mc_gross
时查找payment_date
。 Eerrgh,我觉得不洁净!
实验1 证明FORM.PAYMENT
是必须为数字的保留值。
实验2 证明FORM.PAYMENT_DATE
是保留值,在填充FORM.FIELDNAMES
时会被忽略。
为什么吗
答案 0 :(得分:8)
在ColdFusion的表单范围中,以http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec173d0-7ffe.html为单位保留以_date结尾的任何内容以进行验证。
我无法复制您所遇到的问题&#39;付款&#39;是一个整数。只要我将payment_date字段更改为paymentdate,就可以提交。