我一直在coldfusion中使用普通表单和输入字段已有一段时间了,但最近发现cfinput标签会自动阻止一些xss攻击.这让我想知道,如果在正常形式和输入标签中使用cffrom和cfinput存在任何缺点,那么在coldfusion中.
我在短时间内发现的唯一缺点是它为页面添加了2个外部样式表和1个脚本标记.
所以简而言之:
在Coldfusion中使用CFFORM而不是FORM有什么优缺点?
我有一个非常简单的cfform与一个表单字段:
<cfform action="asdf.cfm" method="post">
<cfinput name="fieldName" type="text" size="20" maxlength="20" required="yes" validate="regex" pattern="[A-Za-z]" message="Only characters are allowed." />
<input type="submit" name="btnSubmit" value="check" />
</cfform>
Run Code Online (Sandbox Code Playgroud)
从理论上讲,这将允许任何组合中的AZ和AZ,并且必须包含一些内容.
在实践中,我能够输入'aa'并且javascript验证不会抱怨.由于"空间"字符不在AZ中而不在az中,所以发生了什么?
谢谢!克里斯
我听过很多次高级开发人员要求不使用coldfusion UI标签并且会导致问题.但有人能让我知道它会产生什么样的问题吗?我主要不使用CFML UI标签,但是一些遗留代码已经有了它们.因此,如果我必须改变它们,我需要说服人们为什么需要改变它们.原因......
编辑:
我知道这已被搁置,但我问的是几点,一类清单.因此,当我与某个客户,同事开发人员交谈并想强调不使用cfform的原因时,我确实有这些原因.有很多好的和一些不太好的答案,我认为我可以列出一个列表
1)他们使用旧的过时版本的JavaScript库和HTML.
2)他们过去曾造成安全问题.
3)他们妨碍了解事情的实际运作方式.
4)ColdFusion UI目前正常工作.然而,人们所拥有的问题很简单,技术在变化.它真的很简单.jQuery和其他UI正在不断变化.以及ColdFusion UI使用的许多其他API.这意味着,如果您今天使用ColdFusion 10并且从现在起5年后使用ColdFusion 13,您可能会遇到ColdFusion 10 UI的问题.
5)另一个例子是.最近有一个问题,因为它使用谷歌地图和谷歌更新了他们的API.自更新发生以来,它打破了标签.由于这是一个ColdFusion UI而不是您自己的UI,因此很难更新API调用.这就是为什么建议使用自己的.这是一个简单的修复jQuery UI但不是真正的ColdFusion UI.
6)此外,很多ColdFusion UI都会混淆你的标题.例如, .众所周知,此标记会破坏移动网站和其他标头,因为它会将自己的标头添加到HTML页面中.
7)cfinput required =""与HTML 5输入冲突=""
我是coldfusion的新手,请检查下面的代码
<cfif isDefined("form.submit")>
<cfoutput>
<h3>hi</h3>
</cfoutput>
</cfif>
<cfform action="#CGI.SCRIPT_NAME#">
User Name:<cfinput type="Text" name="usr_nm"><br>
<cfinput type="Radio" name="access_flg" value="0">Admin
<cfinput type="Radio" name="access_flg" value="1">User</br>
<cfinput type="submit" name="submit" value="submit"><br>
</cfform>
Run Code Online (Sandbox Code Playgroud)
但是,当我点击提交按钮时,我期待的结果是你好
我没有看到你好消息,我的代码有什么问题吗,请任何人帮助我
我希望使用表格将表格值传递cfform
给PDF cfpdfform
.这是我的小测试页面,它循环显示50条记录以提取名字和姓氏.我想把它们放到pdf字段中.目前,它将所有50个名字放入firstname字段,将所有lastnames放入pdf的lastname字段.我没有与提交按钮结婚,但有哪些更好的选择呢?
在我的最后一次迭代中,我将大约100个领域.
- 形成 -
<cfform name="autopdf" method="POST" action="automated_pdf_submit.cfm" enctype="multipart/form-data">
<h1>Select a state to insert into a PDF form</h1>
<div class="center">
<select name="pdfselect" id="pdfselect">
<option value="" selected>--Select State--</option>
<option value="FROI_NY.pdf">New York</option>
<option value="FROI_PA.pdf">Pennsylvania</option>
</select>
<cfinput type="hidden" name="statevalidate" onValidate="yourFunction"
message="YOU MUST SELECT A STATE TO CONTINUE!">
</div>
<table align="center" style="width:400px">
<tr>
<th></th>
<th>First Name</th>
<th>Last Name</th>
<th>Export to PDF</th>
</tr>
<cfoutput>
<cfloop query="#qryPersons#" startrow="1" endrow="50" >
<tr class="#IIf(CurrentRow Mod 2, DE('rowOdd'), DE('rowEven'))#" onmouseover="this.className='rowHighlight'"
<cfif CurrentRow Mod 2>onmouseout="this.className='rowOdd'" …
Run Code Online (Sandbox Code Playgroud) 我有史以来第一次让两个用户使用 .education 顶级域名进入我的应用程序。他们的电子邮件地址如下所示:user@domain.education。我在他们填写的表单上使用 cfinput 验证属性,如下所示:
<cfinput type="text" name="email" required="yes" message="Please enter a valid email address." validate="email">
Run Code Online (Sandbox Code Playgroud)
当用户提交表单时,他们会收到我的错误消息。该表单多年来一直在输入的所有其他电子邮件地址上成功运行。有什么技巧可以让它成为这个顶级域名吗?TIA
我不明白为什么我会收到此错误。我正在使用 cfform 将数据从一个 html 页面发送到下一个。见下文。我注意到的另一件事是 angle_changes 字符串的前两个字符被截断。它应该是“0a0a0a0a”,但错误消息中传递了“0a0a0a”。
以下是来自spatialforaging.cfm的相关html/Javascript代码:
<!---all of these get passed from a previous page using cfoutput, except for angle_changes--->
<cfform action="field_transition.cfm" method="post" name="field_form">
<cfinput type="hidden" id="angle_changes" name="angle_changes" value="">
<cfinput type="hidden" id="subject_id" name="subject_id" value=#subject_id#>
<cfinput type="hidden" id="times_switched_away" name="times_switched_away" value=#times_switched_away#>
<cfinput type="hidden" id="total_time_unfocused" name="total_time_unfocused" value=#total_time_unfocused#>
<cfinput type="hidden" id="completed_fields" name="completed_fields" value="">
</cfform>
Run Code Online (Sandbox Code Playgroud)
脚本
//these values get changed earlier in the script
document.getElementById("times_switched_away").value = times_switched_away;
document.getElementById("total_time_unfocused").value = total_time_unfocused;
document.getElementById("completed_fields").value = completed_fields.toString();
//angleChanges is an array containing integers which is created elsewhere …
Run Code Online (Sandbox Code Playgroud) 我正在为一个站点制作组件,我想知道我是否可以从组件返回一个cfform返回变量并强制coldfusion输出它解析.
显然使用"writeOutput(")"不起作用.我怎么能实现这一点?感谢您的时间!
我在abc.cfm中运行以下表单.
//参数定义
<cfparam name="startdate" default="#DateFormat(dateAdd('d',-40,now()), 'yyyy-mm-dd')#">
<cfparam name="enddate" default="#DateFormat(dateAdd('d',-1,now()), 'yyyy-mm-dd')#">
<cfform format="HTML" action="datedownload.cfm" method="get" >
<cfformgroup type="horizontal">
<cfinput type="dateField" name="startdate" width="100" value="#startdate#">
<cfinput type="dateField" name="enddate" width="100" value="#enddate#">
<cfinput name="submitApply" type="submit" value = "Apply">
<cfinput type="button" name="download" value="Download" onclick="window.location.href='datedownload.cfm?startdate=#form.startdate#&enddate=#form.enddate#path=http://abc.xyz.com/username/July30/datedownload.cfm'">
</cfformgroup>
</cfform>
Run Code Online (Sandbox Code Playgroud)
使用datedownload.cfm中的以下代码,一切都正常打印
Startdate: <cfdump var = "#startdate#">
End Date :<cfdump var = "#enddate#">
Run Code Online (Sandbox Code Playgroud)
除此之外,Enddate正在打印完整路径,如下所示:
Startdate: 2013-06-20 End Date : 2013-07-29path=http://abc.xyz.com/username/July30/datedownload.cfm
Run Code Online (Sandbox Code Playgroud)
如何从路径中删除东西?
假设我有一个看起来像这样的简单cfform:
<cfform id="fruitForm" method="post" action="">
<cfinput type="radio" name="fruit" id="fruit_apple" value="Apple" /><label for="fruit_apple">Apple</label><br />
<cfinput type="radio" name="fruit" id="fruit_orange" value="Orange" /><label for="fruit_orange">Orange</label><br />
<cfinput type="radio" name="fruit" id="fruit_pear" value="Pear" /><label for="fruit_pear">Pear</label><br />
<cfinput type="submit" name="submitFruit" id="submitFruit" value="Submit" />
</cfform>
Run Code Online (Sandbox Code Playgroud)
如何使用内置的cfform验证来确保选择此组中的至少一个单选按钮?我尝试在每个单选按钮上添加一个validate ="required"但它不起作用.有没有简单的方法来"要求"使用cfform验证选择其中一个按钮?
cfform ×10
coldfusion ×10
cfinput ×3
forms ×2
validation ×2
cfloop ×1
cfpdfform ×1
cfquery ×1
coldfusion-8 ×1
javascript ×1
radio-button ×1
regex ×1
submit ×1