coldfusion application.cfm和受影响的文件

时间:2011-04-21 20:47:17

标签: coldfusion application.cfm

如果我的网站有受保护的后端,并且我希望使用application.cfm文件,我该如何判断哪些页面使用了应用程序文件,哪些页面没有。

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。< / p>

这是合理的还是我应该使用cfinclude

4 个答案:

答案 0 :(得分:4)

  1. 始终确保使用大写“A”命名Application.cfm和Application.cfc文件。这样,如果从Windows迁移到区分大小写的文件系统,则不会出现ColdFusion无法找到Application.cfm / cfc文件的问题。

  2. 就您的问题而言,使用您当前的结构,“update”文件夹中的所有文件都将使用Application.cfm文件。它将在这些文件中的任何其他代码之前执行。如果您只希望某些页面重定向到loginexpired页面,那么我通常会创建一个子文件夹,将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事件处理程序,从而更好地控制应用程序流。

答案 1 :(得分:1)

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

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

因此,您在“update”文件夹中列出的所有文件都将自动使用application.cfm。只有root中列出的index.cfm才会出现。 (因为Application.cfc和Application.cfm都不在该文件夹中。)

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

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

有关Application.cfc和Application.cfm的更多信息,请访问on Adobe's Coldfusion site

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

糟糕,拼写错误

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