Вопрос

Я пытаюсь изучить новый синтаксис 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;
}
Это было полезно?

Решение

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

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

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

logout();

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top