3

如果我有一个站点,其中有一个受保护的后端,并且我正在寻找使用 application.cfm 文件,我如何知道哪些页面使用应用程序文件a,哪些不使用。

index.cfm
update/application.cfm
update/loginexpired.cfm
update/login.cfm
update/somesecurepage.cfm
update/someothersecurepage.cfm

updates/login.cfm如果登录正确,我想创建会话。如果安全页面在没有正确登录的情况update/somesecurepage.cfmupdate/someothersecurepage.cfm被访问,应用程序应该转发到,update/loginexpired.cfm但我不希望使用任何其他页面application.cfm

这是合理的还是我应该cfinclude改用?

4

4 回答 4

4
  1. 始终确保将 Application.cfm 和 Application.cfc 文件命名为大写“A”。这样,如果您从 Windows 迁移到区分大小写的文件系统,您将不会遇到 ColdFusion 找不到您的 Application.cfm/cfc 文件的问题。

  2. 就您的问题而言,根据您当前的结构,“更新”文件夹中的所有文件都将使用 Application.cfm 文件。它将在这些文件中的任何其他代码之前执行。如果您只希望某些页面重定向到登录过期页面,那么我通常会创建一个子文件夹,将 Application.cfm 文件放在该文件夹中,其中包含父文件夹中的 Application.cfm 文件:<cfinclude template="../Application.cfm" />. 然后在此文件中,您将添加您的安全检查。在父 Application.cfm 文件中,您将包含该<cfapplication />标记。如果您使用会话,请务必在您的 cfapplication 标签中启用会话管理。( <cfapplication name="myappname" sessionmanagement="true" />)

  3. 您确实应该在站点的根目录中有一个 Application.cfm 或 Applciation.cfc 文件。如果不这样做,应用程序将在没有应用程序范围的情况下运行。ColdFusion 有一种“未命名”的应用程序,它可以在没有定义的应用程序名称的情况下运行。您很可能会遇到不良影响。所有 CF 应用程序都应该有一个命名应用程序,使用 cfapplication 标记或设置了 this.name 的 Application.cfc 文件。

  4. 如果您将其编写为一个新应用程序,我建议您使用 Application.cfc 而不是 Application.cfm。您将可以访问应用程序、会话和请求生命周期(onApplicationStart/End、onSessionStart/End、onRequestStart/End)以及 onError 和 onMissingTemplate 事件处理程序,让您更好地控制应用程序的流程。

于 2011-04-21T21:50:30.807 回答
1

加载 .cfm 页面时,它将首先在同一文件夹中查找 Application.cfc(现代的、推荐的应用程序对象)并运行它。如果该文件不存在,它将查找 Application.cfm(实例化应用程序的旧方法。)

如果该文件夹中都不存在,它将查找树到下一个文件夹并在那里检查 Application.cfc,然后是 Application.cfm,它将重复此操作,直到找到一个或到达服务器的根目录。

因此,您在“更新”文件夹中列出的所有文件都将自动使用 application.cfm。只有根目录中列出的 index.cfm 不会。(因为 Application.cfc 和 Application.cfm 都不位于该文件夹中。)

因此,最好在您网站的根目录中为每个人使用 Application.cfc,然后将锁定的页面放在具有更多限制性 Application.cfc 的子文件夹中。

我希望直接回答你的问题。否则,我同意肖恩所说的。

有关 Application.cfc 和 Application.cfm 的更多信息,请访问Adob​​e 的 Coldfusion 站点

于 2011-04-27T04:40:52.557 回答
0

我建议您为公共区域和安全区域制作不同的 Appliction.cfm(pref Application.cfc)。还为这些应用程序定义不同的名称。

于 2011-04-22T12:29:13.987 回答
-1

糟糕,拼写错误

我建议您为公共区域和安全区域制作不同的 Appliction.cfm(pref Application.cfc)。还为这些应用程序定义不同的名称。

于 2011-04-22T12:35:47.917 回答