在ColdFusion中编辑表行

时间:2013-08-02 15:06:16

标签: coldfusion edit cfml

我使用cftablecfloop输出ColdFusion中的项目表。但是,在点击其中一个表行时调用编辑器页面的正确方法是什么?

以下是代码:

<table class="grid">
<tr>
    <th>id</th>
    <th>Date</th>
    <th>Description</th>
    <th>Status</th>
    <th>Urgency</th>
    <th>Severity</th>
</tr>
<cfloop query="GetIssues">
<tr>
    <td><cfoutput>#id#</cfoutput></td>
    <td><cfoutput>#CreatedOn#</cfoutput></td>
    <td><cfoutput>#ShortDesc#</cfoutput></td>
    <td><cfoutput>#Status#</cfoutput></td>
    <td><cfoutput>#Urgency#</cfoutput></td>
    <td><cfoutput>#Severity#</cfoutput></td>
</tr>
</cfloop>
</table>

我可以使用a href向编辑页面发出GET请求,但这是正确/安全的方式吗?

1 个答案:

答案 0 :(得分:3)

您当然可以创建指向编辑器页面的链接并传递ID,但是,如果您的ID是数字,则恶意用户很容易猜到其他项目的ID。为了缓解这个问题,我倾向于使用UUID作为我的ID。猜测另一个元素的ID非常困难。

此外,最好将cfloop包装在cfoutput中,而不是包装每个td - 并且应该调整变量名称的范围。

例如:

<cfoutput>
    <cfloop query="GetIssues">
      <tr>
        <td><a href="edit.cfm?id=#GetIssues.id#">#GetIssues.id#</a></td>
        <td>#GetIssues.CreatedOn#></td>
        <td>#GetIssues.ShortDesc#</td>
        <td>#GetIssues.Status#</cfoutput></td>
        <td>#GetIssues.Urgency#</cfoutput></td>
        <td>#GetIssues.Severity#</td>
      </tr>
    </cfloop>
</cfoutput>