你可以在application.cfm中有多个cfapplications? [英] Can you have multiple cfapplications in an application.cfm?

查看:122
本文介绍了你可以在application.cfm中有多个cfapplications?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个coldfusion网站与application.cfm。它定义了一个cfapplication:

 < cfapplication name =FhaAppclientmanagement =no
sessionmanagement =yessessiontimeout =#createTimeSpan(0,0,360,0)#>

< cflock timeout =120name =#session.sessionID#type =exclusive>
< cfcookie name =CFIDvalue =#session.CFID#>
< cfcookie name =CFTOKENvalue =#session.cftoken#>
< / cflock>
< cfparam name =session.fromwheredefault =>
< cfif#cgi.SCRIPT_NAME#contains'default-partner - '>
< cfif not ISDEFINED(cookie.fromwhere)>
< cfcookie name =fromwherevalue =#right(cgi.SCRIPT_NAME,(len(cgi.SCRIPT_NAME)-1))#expires =30>
< cfset session.fromwhere = #right(cgi.SCRIPT_NAME,(len(cgi.SCRIPT_NAME)-1))#>
< / cfif>
< / cfif>

< cfset datasourcename =fha47>


< cfparam name =session.loggedindefault =false>
< cfparam name =session.ppciddefault =101>
< cfparam name =session.ciddefault =FHA>

我想添加另一个cfapplication,如下所示:

 < cfapplication name =QSvalues
sessionTimeout =#CreateTimeSpan(0,0,0,60)#
sessionManagement =yes >


< cflock scope =Session
timeout =30type =Exclusive>
< cfif NOT IsDefined(session.prop_st)>
< cfset session.prop_st =>
< / cfif>
< cfif NOT IsDefined(session.prop_zip)>
< cfset session.prop_zip =>
< / cfif>
< cfif NOT IsDefined(session.address)>
< cfset session.address =>
< / cfif>
< cfif NOT IsDefined(session.email)>
< cfset session.email =>
< / cfif>
< cfif NOT IsDefined(session.fname)>
< cfset session.fname =>
< / cfif>
< cfif NOT IsDefined(session.lname)>
< cfset session.lname =>
< / cfif>
< cfif NOT IsDefined(session.pri_phone_1)>
< cfset session.pri_phone_1 =>
< / cfif>
< cfif NOT IsDefined(session.pri_phone_2)>
< cfset session.pri_phone_2 =>
< / cfif>
< cfif NOT IsDefined(session.pri_phone_3)>
< cfset session.pri_phone_3 =>
< / cfif>
< / cflock>

< cflock scope =Applicationtimeout =30type =Exclusive>
< cfif NOT IsDefined(application.number)>
< cfset application.number = 0>
< / cfif>
< / cflock>我的问题是,你能在application.cfm的主体中定义两个单独的cfapplication吗?

解决方案

我不完全确定为什么你想要或需要第二个cfapplication;它不是真正清楚从你的代码或解释。



此外,在你的代码中,你所做的一切都是写给应用程序范围..这不是真正地声明另一个cfapplication。



几个提示虽然...您的大cfif区域的会话值,只是使用cfparam:

 < cfparam name =session.prop_stdefault => 

这样,如果它不存在,它将被创建。



此外,如果您使用的是最新的ColdFusion,您不需要围绕会话范围进行cflock。你应该锁定应用程序范围设置,但是由于你在Application.cfm中设置它们,它很傻..我会使用另一个范围,如请求范围。



在您的cfif cgi.script_name上,您不需要围绕该变量的#符号。你需要它们的唯一时间是当他们被引用或输出在cfoutput(或与Evaluate()一起使用创建动态变量)。



我希望这有助于。


I have a coldfusion site with an application.cfm. It has a cfapplication defined in it:

<cfapplication name="FhaApp" clientmanagement="no"
           sessionmanagement="yes" sessiontimeout="#createTimeSpan(0,0,360,0)#">

<cflock timeout="120" name="#session.sessionID#" type="exclusive">
<cfcookie name="CFID" value="#session.CFID#" >
<cfcookie name="CFTOKEN" value="#session.cftoken#" >
</cflock>
<cfparam name="session.fromwhere" default="">
<cfif #cgi.SCRIPT_NAME# contains 'default-partner-'>
    <cfif not ISDEFINED("cookie.fromwhere")>
<cfcookie name="fromwhere" value="#right(cgi.SCRIPT_NAME,         (len(cgi.SCRIPT_NAME)-1))#" expires="30">
    <cfset session.fromwhere = #right(cgi.SCRIPT_NAME,(len(cgi.SCRIPT_NAME)-1))#>
    </cfif> 
 </cfif>

 <cfset datasourcename="fha47">

 <cfparam name="application.dsn" default="fha47">

 <cfparam name="session.loggedin" default="false">
 <cfparam name="session.ppcid" default="101">
 <cfparam name="session.cid" default="FHA">

I want to add another cfapplication that looks like this:

<cfapplication name = "QSvalues" 
sessionTimeout = "#CreateTimeSpan(0,0, 0, 60)#" 
sessionManagement = "yes">


<cflock scope = "Session" 
timeout = "30" type = "Exclusive">
<cfif NOT IsDefined("session.prop_st")>
    <cfset session.prop_st = "">
</cfif>
<cfif NOT IsDefined("session.prop_zip")>
    <cfset session.prop_zip = "">
</cfif>
<cfif NOT IsDefined("session.address")>
    <cfset session.address = "">
</cfif>
<cfif NOT IsDefined("session.email")>
    <cfset session.email = "">
</cfif>
<cfif NOT IsDefined("session.fname")>
    <cfset session.fname = "">
</cfif>
<cfif NOT IsDefined("session.lname")>
    <cfset session.lname = "">
</cfif>
<cfif NOT IsDefined("session.pri_phone_1")>
    <cfset session.pri_phone_1 = "">
</cfif>
<cfif NOT IsDefined("session.pri_phone_2")>
    <cfset session.pri_phone_2 = "">
</cfif>
<cfif NOT IsDefined("session.pri_phone_3")>
    <cfset session.pri_phone_3 = "">
</cfif>
</cflock>

<cflock scope = "Application" timeout = "30" type = "Exclusive">
<cfif NOT IsDefined("application.number")>
    <cfset application.number = 0>
</cfif>
</cflock>

My question is, can you define two separate cfapplication in the main application.cfm?

解决方案

I'm not entirely sure why you would want or need the second cfapplication; it's not really clear from your code or explanation. I think you could probably put another one in there, but it would likely override the previous one.

Besides, in your code all you're doing is writing to the application scope.. that's not really declaring another cfapplication.

A couple of tips though... your big cfif area for the session values, just use cfparam:

<cfparam name="session.prop_st" default="">

That way if it doesn't already exist, it will be created.

Also, if you're using the latest ColdFusion, you don't need to cflock around session scopes. You should be locking around the application scope settings, but since you're setting them in Application.cfm, it's kinda silly.. I would use another scope, like the request scope.

On your cfif cgi.script_name, you don't need # signs around that variable. The only times you need them are when they're quoted or are being outputted in a cfoutput (or when used with Evaluate() to create dynamic variables).

I hope this helps.

这篇关于你可以在application.cfm中有多个cfapplications?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆