Pregunta

Estoy tratando de aprender la nueva sintaxis cfscript, así como el uso cflogin. Supongo que no se pueden mezclar etiquetas cf en cfscript, y no ver una secuencia de comandos equivalente a cflogin, cflogout, cfloginuser.

¿Debo llamar a un componente que está escrito en la sintaxis CF8 con el fin de utilizar cflogin?

public void function onRequest(required string Page) output="true" {
if (StructKeyExists(url,"logout")) {
 <cflogout>
}
<cflogin>
 local.qryUsr = new Components.Usr.Login(form);
 if (local.qryUsr.Recordcount) {
  <cfloginuser name="#form.UsrName#" password="#form.UsrPassword#" roles="#local.qryUsr.Roles#">
 } else {
  request.errorMessage = "Incorrect login";
  include login/login.cfm;
  return;
 }
</cflogin>
include arguments.Page;
}
¿Fue útil?

Solución

No se puede mezclar directamente etiquetas y secuencias de comandos. Sin embargo, usted puede fingir escribiendo envolturas alrededor de las etiquetas de función:

<cffunction name="logout">
   <cflogout />
</cffunction>

y llamar como:

logout();

Obviamente, este es un ejemplo trivial. Lo que quiere especificar sus argumentos, el valor de retorno, etc. en su código real.

Nota uno:. No hacer esto para una función de consulta genérica que acepta la entrada del usuario, ya que no será capaz de utilizar cfqueryparam

Nota dos: por lo general no hago esto. Si estoy escribiendo código que depende de las operaciones de la etiqueta de sólo utilizo la sintaxis de la etiqueta.

Otros consejos

Como nota al margen, hay un pequeño esfuerzo pasando más en CFLib.org para crear funciones para todos CF las etiquetas. echa un vistazo a CFMLLib para más detalles

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top