如果我想将联系表单提交保存到数据库,如何将表单范围插入作为提交?我已经有一段时间没有使用 Coldfusion 了。
联系表单根据从网站的哪个部分提交而有所不同,因此需要缩放和处理具有 5 个字段的表单或具有 10 个字段的表单。我只想将数据存储在 blob 表中。
最节省空间且最简单的恢复原始形状的方法是使用serializeJSON。之后,您可以使用 key:value|key:value 或结构的 XML 表示形式。
Cfwddx 也是一种替代方案。
我不知道有没有办法将本机结构存储到数据库中,但是您是否考虑过使用 JSON 将对象表示为键对值,然后从数据库检索它后将其解析为本机结构?
有一些标签/函数可以帮助您将编码和解码为 JSON:
如果您无法将表单字段规范化为正确的表,您可以尝试存储它们:
ObjectLoad()
和 ObjectSave()
(仅限 CF9)存储为 blob。IIRC 在 CF9 之前的版本中,有多种方法可以通过利用 Java 来获取对象加载/保存功能。 http://www.riaforge.org/ 或 http://cflib.org/ 可能有它。
我一直这样做。 事实上,为了取证,我有一个脚本来记录工作中在我们网站上提交的每个表单。
您可以对 FORM 范围使用serializeJSON()函数,就像这样......
<cfset theForm = serializeJSON(form)>
然后将其插入到您的数据库中。
如果您想确保其安全 - 例如,如果表单包含 PII - 您还可以使用 encrypt() 函数加密 JSON 字符串。 只需用您选择的算法生成一个密钥并将其存储为应用程序变量即可。 这样您就可以根据需要加密和解密内容。