cflogin в cfscript - PullRequest
       16

cflogin в cfscript

1 голос
/ 11 ноября 2009

Я пытаюсь изучить новый синтаксис cfscript, а также использовать cflogin. Я предполагаю, что не могу смешивать теги cf в cfscript, и я не вижу сценарий, эквивалентный cflogin, cflogout, cfloginuser.

Должен ли я вызвать компонент, который написан в синтаксисе CF8 для использования 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;
}

Ответы [ 2 ]

8 голосов
/ 11 ноября 2009

Вы не можете напрямую смешивать теги и сценарии. Однако вы можете подделать его, написав обертки функций вокруг тегов:

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

и звоните как:

logout();

Очевидно, это тривиальный пример. Вы бы хотели указать свои аргументы, возвращаемое значение и т. Д. В своем фактическом коде.

Примечание 1: не делайте этого для универсальной функции запроса, которая принимает пользовательский ввод, поскольку вы не сможете использовать cfqueryparam.

Обратите внимание: я обычно этого не делаю. Если я пишу код, который зависит от операций только с тегами, я использую синтаксис тегов.

0 голосов
/ 11 ноября 2009

В качестве примечания, на CFLib.org предпринимаются небольшие усилия по созданию функций для всех тегов CF. проверьте CFMLLib для более подробной информации

...