我的客户The 2 parameter of the Left function, which is now -1, must be a positive integer
从ColdFusion 8迁移到ColdFusion 10后遇到错误。该页面在Windows 7的Firefox 31和Chrome 36中按预期方式运行。但是,此错误在IE9中发生,但在IE7中不发生。IE9中是否有其他安全设置禁止处理代码?
有问题的代码段是:
<!--- Populate the UserInfo struct --->
<cfloop INDEX="item" LIST="#COOKIE.MYELVIS_USERINFO#" DELIMITERS="&">
<cfset delim = #FindOneOf("=",item)#>
<cfif (len(item)-delim)>
<cfset UserInfo[UCase(left(item,delim-1))] = right(item,len(item)-delim)>
<cfelse>
<cfset UserInfo[UCase(left(item,delim-1))] = "">
</cfif>
</cfloop>
我很伤心地说这是在其他浏览器(而不是IE9)中工作时的代码错误。有什么想法吗?谢谢你。
也许让他清除cookie,可能从cf 8保留下来,并且两个版本的编码方式不同。看起来,如果可能的话,其中一个值不包含=。
在查看您的代码后,我认为这是您所需要的。
<cfloop INDEX="item" LIST="#COOKIE.MYELVIS_USERINFO#" DELIMITERS="&">
<cfset delim = #FindOneOf("=",item)#>
<cfif (delim) and (len(item)-delim)>
<cfset UserInfo[UCase(left(item,delim-1))] = right(item,len(item)-delim)>
<cfelse>
<cfset UserInfo[UCase(item)] = "">
</cfif>
</cfloop>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句