Pergunta

Estou tentando aprender a nova sintaxe do CFScript, bem como usar o cflogin. Acho que não consigo misturar tags CF no CFScript e não vejo um script equivalente a cflogin, cflogout, cfLoginUser.

Devo chamar um componente que está escrito na sintaxe do CF8 para usar o 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;
}
Foi útil?

Solução

Você não pode misturar diretamente tags e scripts. No entanto, você pode fingir que escrevendo embalagens de funções em torno das tags:

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

e chamar como:

logout();

Obviamente, este é um exemplo trivial. Você deseja especificar seus argumentos, seu valor de retorno etc. no seu código real.

NOTA UM: Não faça isso para uma função de consulta genérica que aceita entrada do usuário, pois você não poderá usar o CFQueryParam.

Nota dois: geralmente não faço isso. Se estou escrevendo código que depende de operações somente de tags, uso a sintaxe da tag.

Outras dicas

Como nota lateral, há um pequeno esforço em andamento em Cflib.org Para criar funções para todas as tags CF. Verificação de saída Cfmllib para mais detalhes

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top