문제

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에서는 <cfif> 태그를 상관하지 않으며 CF의 더 큰 버전을위한 의미가있는 것과 같이 다음과 같은 오류를 얻지 못하고 있습니다 (>7).

여기에 이미지 설명

어떤 생각?나는 많은 많은 많은 다른 화원과 같은 결과를 시험해 보았다.CF 6 나를 절망하게 만듭니다. 추신아니요, 일부 스크립트를 작성하는 것은 아직 나중에 버전으로 이동하지 않을 것입니다.

도움이 되었습니까?

해결책

ColdFusion이 페이지를 컴파일하려고하지만 encrypt 기능에 대해 유효하지 않은 구문을 사용하고 있기 때문일 수는 없습니다.CF 6은 이러한 인수가 encrypt에 전달되는 것을 허용하지 않습니다.POST-CF6 코드를 포함하도록 <cfinclude> 문을 사용하는 CF6을 지원 해야하는 경우를 제안합니다.그래서 뭔가 :

<cfif listfirst(server.coldfusion.productversion) gte 7>
  <cfinclude template="cf7encrypt.cfm" />
<cfelse>
  <cfinclude template="cf6encrypt.cfm" />
</cfif>
.

그런 다음 두 CFM 파일에서 암호화 할 버전 특정 호출을 포함 할 수 있습니다.그런 다음 올바르게 컴파일됩니다.

다른 옵션은 래퍼를 암호화 (CF6 및 CF7 + 용 하나와 하나씩 하나)로 작동 한 다음 적절한 CFC를로드하고 암호화 함수를 호출하는 두 개의 서로 다른 CFC를 갖는 것입니다.두 경우 모두 키는 기본 템플리트에서 encrypt()에 잘못된 통화를 가져 오는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top