Если вы хотите вручную выполнить итерации по всем полям формы, самый простой способ - это cfloop, например, так:
<cfloop collection="#form#" item="variables.name">
#variables.name#=(#form[variables.name]#)<br/>
</cfloop>
Но, тем не менее, в случае сообщения об ошибке вы, вероятно, обнаружите, что проще просто "сбросить" область видимости формы (которая является просто специальной структурой), например:
<cfmail
from="errors@#cgi.server_name#"
to="you@yourdomain.com"
subject="Error Occurred in such and such a place"
type="html">
<cfdump var="#form#"/>
</cfmail>
При отправке электронных писем с сообщениями об ошибках мне нравится включать вторую cfdump
для области CGI (опять же, просто специальную структуру), поскольку это может предоставить некоторую другую полезную информацию о запросе.
Если у вас CF 8, вам также может потребоваться сделать дамп в текстовом формате, как показано ниже, потому что это уменьшит размер сообщения (и, на мой взгляд, сделает сообщение более читабельным)
<cfdump var="#form#" format="text">
Примечание: атрибут format
тега CFDump был добавлен для CF 8, поэтому вы не сможете использовать его в предыдущих версиях ColdFusion.
Вы упомянули, что искали способ сохранить эти ошибки в базе данных, и это хорошая идея. Вместо того, чтобы предлагать собственное решение для этого, я предлагаю вам проверить BugLogHQ . Это было вокруг некоторое время и хорошо работает для других, включая меня, и лучше всего это БЕСПЛАТНО и с открытым исходным кодом. Его возраст и повсеместное использование означают, что вероятность возникновения ошибок в собственном коде будет меньше, и, вероятно, у него будет больше возможностей, которые лучше, чем то, что вы написали бы.
Используя BugLogHQ, вам не нужно беспокоиться об отображении ошибки, вы просто отправляете данные в регистратор ошибок, а он позаботится обо всем остальном.