Domanda

Ho la seguente dichiarazione molto semplice se / alnici:

<cfif Server.ColdFusion.ProductVersion GTE "7">
        <cfoutput>#encrypt("Test text", "77qidrWFoQg96taobooCm3/WimS2Gcdd", "DESEDE", "Hex")#</cfoutput>
<cfelse>
        <cfoutput>#encrypt("Test text", "77qidrWFoQg96taobooCm3/WimS2Gcdd")#</cfoutput>
</cfif>
.

funziona ad esso dovrebbe essere sotto CF 7, 8, 9, 10 ma non sotto CF 6 in cui ottengo il seguente errore come se non si interessa il tag <cfif> ed esegui ciò che è pensato per le versioni maggiori di CF (>7).

Inserire l'immagine Descrizione qui

Qualche idea?Ho provato molte molte diverse Ozioni e lo stesso risultato.CF 6 mi rende disperato. P.S.No, i miei clienti scrivono alcuni script per non sposterò ancora in una versione successiva.

È stato utile?

Soluzione

ColdFusion sta cercando di compilare la pagina, ma non può perché si utilizza una sintassi non valida per la funzione encrypt.CF 6 non consente di passare a tali argomenti a encrypt.Suggerisco se è necessario supportare CF6 che utilizzi un'istruzione <cfinclude> per includere il codice post-cf6.Quindi qualcosa del genere:

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

Poi nei due file CFM è possibile includere le chiamate specifiche della versione per crittografare.Quindi compilerà correttamente.

Un'altra opzione sarebbe avere due diversi CFC che agiscono come involucri per crittografare (uno per cf6 e uno per cf7 +) e quindi caricare il CFC corretto e chiamare una funzione di crittografia.In entrambi i casi, la chiave è ottenere la chiamata non valida su encrypt() dal modello principale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top