Question

Je suis en train d'apprendre la nouvelle syntaxe cfscript, ainsi que l'utilisation cflogin. Je devine que je ne peux pas mélanger les balises cf dans cfscript, et je ne vois pas d'équivalent de script à cflogin, cflogout, cfloginuser.

Dois-je appeler un composant qui est écrit dans la syntaxe CF8 pour utiliser 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;
}
Était-ce utile?

La solution

Vous ne pouvez pas mélanger directement les balises et les scripts. Cependant, vous pouvez faux en écrivant des enveloppes de fonction autour des balises:

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

et appeler comme:

logout();

De toute évidence, ceci est un exemple trivial. Vous voudriez spécifier vos arguments, votre valeur de retour, etc. dans votre code actuel.

Remarque un:. Ne pas le faire pour une fonction de requête générique qui accepte l'entrée d'utilisateur, que vous ne pourrez pas utiliser cfqueryparam

Note deux: Généralement, je ne le fais pas. Si je suis à écrire du code qui dépend des opérations de tag seule, j'utilise la syntaxe de la balise.

Autres conseils

comme une note de côté, il y a un petit effort en cours sur CFLib.org pour créer des fonctions pour tous les CF Mots clés. consultez CFMLLib pour plus de détails

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top