我有以下非常简单的if/else语句:
<cfif Server.ColdFusion.ProductVersion GTE "7">
<cfoutput>#encrypt("Test text", "77qidrWFoQg96taobooCm3/WimS2Gcdd", "DESEDE", "Hex")#</cfoutput>
<cfelse>
<cfoutput>#encrypt("Test text", "77qidrWFoQg96taobooCm3/WimS2Gcdd")#</cfoutput>
</cfif>
Run Code Online (Sandbox Code Playgroud)
它应该在CF 7,8,9,10之下,但不在CF 6之下,我得到以下错误,因为它不关心<cfif>
标签并执行对更高版本的CF(> 7)的意义.
任何的想法?我尝试了许多不同的ion和相同的结果.CF 6让我绝望.PS不,我的客户我写的一些脚本不会转移到更高版本.
ColdFusion正在尝试编译页面,但它不能,因为您使用的encrypt
函数语法无效.CF 6不允许传递这些参数encrypt
.我建议你是否需要支持CF6,你使用一个<cfinclude>
声明来包含后CF6代码.所以类似于:
<cfif listfirst(server.coldfusion.productversion) gte 7>
<cfinclude template="cf7encrypt.cfm" />
<cfelse>
<cfinclude template="cf6encrypt.cfm" />
</cfif>
Run Code Online (Sandbox Code Playgroud)
然后在两个cfm文件中,您可以包含要加密的特定于版本的调用.然后它将正确编译.
另一个选择是有两个不同的CFC作为加密包装(一个用于CF6,一个用于CF7 +),然后加载适当的CFC并调用加密功能.在任何一种情况下,关键是encrypt()
从主模板中获取无效调用.
归档时间: |
|
查看次数: |
472 次 |
最近记录: |