【发布时间】:2014-01-10 03:33:34
【问题描述】:
我有以下非常简单的 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>
应该在 CF 7、8、9、10 下工作,但不能在 CF 6 下工作(>7)。
有什么想法吗?我尝试了很多很多不同的选项和相同的结果。 CF 6 让我绝望。 附言不,我为其编写了一些脚本的客户还不会迁移到更高版本。
【问题讨论】:
-
您不应该将主要产品版本提取为数字并将其与
7而不是"7"进行比较,如“7”>“10”但 7 -
我也试过
cfif Server.ColdFusion.ProductVersion GTE 7,同样的结果;我也试过<cfset coldfusionVersion=Replace(Replace(ListDeleteAt(Server.ColdFusion.ProductVersion,4),",","","all")," ","","all")>然后<cfif coldfusionVersion GTE 700>结果相同:-| -
我什至尝试了
<cfif Server.ColdFusion.ProductVersion LT 7>,结果相同,CF 6 只是忽略了我的<cfif>并执行不适合其版本的代码... -
cfdump Server.ColdFusion.ProductVersion 会发生什么?
-
对所有人来说......它与条件无关,尽管它不会像写的那样工作。由于加密的使用方式,它只是无法编译。请参阅下面的答案。
标签: coldfusion cfml