سؤال

أحاول تعلم بناء جملة 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