Application.cfc and UDFs

I have some UDFs that i want to make available to every page
in my site woudl i just drop the code for those UDFs inside the
onRequestStart method of application.cfc?

In article <f8vi12$9q8$[email protected]>
"bdee2"<[email protected]> wrote:
> I have some UDFs that i want to make available to every
page in my
> site woudl i just drop the code for those UDFs inside
the
> onRequestStart method of application.cfc?
Probably the simplest approach for you is to put those UDFs
in some
cfm file and then include that into onRequest():
<cffunction name="onRequest">
<cfargument name="targetPage"/>
<cfinclude template="myudfs.cfm" />
<cfinclude template="#arguments.targetPage#" />
</cffunction>
Note: you must include the target page - onRequest() assumes
you are
taking full responsibility for the request.
Only when you use onRequest() will the VARIABLES scope of
Application.cfc be accessible inside your top-level page
(arguments.targetPage).
Note: if you use Flash Remoting, Web Services or direct AJAX
CFC
calls, you cannot use onRequest() directly (because it
intercepts the
result). Read the chapter on Application.cfc in the
ColdFusion
Developer's Guide (it's really very good reading!). You might
also
want to read this blog entry:
http://corfield.org/entry/Applicationcfc__onRequest_and_CFCs
And this LiveDocs page:
http://livedocs.adobe.com/coldfusion/7/htmldocs/00000698.htm
(which includes the workaround for and onRequest() and CFC
access)
Sean Corfield
An Architect's View --
http://corfield.org/
I'm using an evaluation license of nemo since 59 days.
You should really try it!
http://www.malcom-mac.com/nemo

Similar Messages

  • Difference between Application .cfc and .cfm?

    Title says it all. I'm a bit confused about the difference
    between Application.cfc and .cfm.
    I understand a bit more about the .cfc, where you define
    methods onRequestStart, etc.
    Yet in an example I'm following, they use .cfm and the
    <cfapplication> tag. Both seem to get called, but should I
    only be using one file? Or?
    Also since both can be used what is the calling order by
    ColdFusion or is one ignored if the other is present?

    if you have both files in the same location, only .cfc is
    processed.
    .cfm is ignored if .cfc is found.
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com

  • Application.cfc and invoking by url a cfc

    hi all!
    i have to invoke by url a cfc. like this...
    http://domain/cfcByUrl.cfc?method=get
    now, if i add application.cfc to root of my application, my
    cfc invoked by url not works! it return only a white page!
    what happen? where do i wrong?
    cfmx7.0.2 on linux
    thanks
    Rob

    vkr, thanks for your reply
    quote:
    You have to call the CFC's through the URL by passing the
    function and its arguments
    yes, it is.
    quote:
    You have to set your function access type to remote
    yes, it is.
    i make some testing.
    if i remove onRequest method in my application.cfc my cfc
    called by url works perfectly. but, i think, is not a good choice
    remove onRequest... :o) this is mine...
    <cffunction name="onRequest" output="Yes">
    <cfargument name="targetPage" type="string"
    required="yes" />
    <cfinclude template="#arguments.targetPage#" />
    </cffunction>
    i test this situation on linux and windows. i've the same
    problem.
    thank
    Rob

  • Contribute and Application.cfc

    I'm building out a site that is contribute-ready, and also
    makes use of Coldfusion MX 7's Application.cfc page. The
    application.cfc page has an onRequestStart function that
    <cfincludes> the navigational elements. When I drop into edit
    mode for a page, the navigational elements disappear. This wouldn't
    be a problem, except that the link to the site style sheet is part
    of one of the <cfincludes>. So, my Contribute users can't
    make use of the site stylesheet, and can't see the page they're
    editing in the context of the navigational elements.
    Strangely enough, if I move the navigational elements out of
    the Application.cfc and <cfinclude> them directly on the
    individual pages, Contribute has no problem displaying them when in
    edit mode.
    Why would Contribute exclude Application.cfc when in edit
    mode, and is there a way to fix this?
    Thanks,
    Michael

    Hi Greg,
    No, I never got a response to this from Adobe, and wasn't
    able to get the site to work with Contribute unless I kept the
    <cfincludes> within the individual pages. Sorry I couldn't be
    more help, but let me know if you have better luck.
    Thanks,
    Michael

  • Moving to CF10, Need help with Application.cfc

    I've been googling about how to work with Application.cfc since last week but I still have some questions and I can't find the answers.
    My application is under the root (in unix) and there are many subfolders underneath it. Each sub-folder is hosting a different web application.
    From what I read, I can create 1 root Application.cfc and then on subsequent sub-folder, when I need to have another Application.cfc on that level, I can create ProxyApplication (see below) and then create a sub-folder level Applicatin.cfc
    So, when I set an application.DSN on my root Application.cfc, using proxyApplication I don't have to reset this dsn again in my sub folder level Application.cfc
    Since my loginform.cfm and loginaction.cfm is right under root directory too,  I also set OnsessionStart in the root Application.cfc to handle user login. Then this means, I don't have to reset session variable again anywhere because session.username, etc has been set on the highest level.
    Is this correct?
    In addition, Am I correct when I do the following:
    1. Since I have root level and sub-folder level Application.cfc, I should set this.name with a different name, am I right?
        On the root Application.cfc I set this.name = "StudentServices" because this represent the global application
        On the sub-folder level's Application.cfc, I set this.name to "StudentServices_stdLoad" becaus this sub-folder only handle student load application.
    2. On the root Application.cfc, I set the DSN to the application scope. So on the sub-folder level Application.cfc I can check if a particular db is working or not
        because as awhole, in the global sense, this web application uses more than one Databases. Each sub-folder may use a database that is dfferent than the other sub folder.
    Am I doing the right thing? Please advice
    Below is example of what I have, Thank you!
    I created a root Application.cfc under the root directory: 
    <CFCOMPONENT displayname="Application" output="true" hint="My Root Application component">
       <!--- Set up the application --->    <cfset THIS.Name = "StudentServices" />    <cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,30,0) />    <cfset THIS.SessionManagement = true />    <cfset THIS.SetClientCookies = false />
           <cffunction name="OnApplicationStart" access="public" returntype="boolean" output="false">
       <cfset application.MainDSN = "DSN1">
       <cfset application.ReportDSN = "DSN2">
       <cfreturn true/>
    </cffunction>
     <cffunction name="onApplicationEnd" output="false">
         <cfargument name="applicationScope" required="true">  </cffunction>
     <cffunction name="onSessionEnd">
    </CFCOMPONENT>
    Then, in this root directory I also created a ProxyApplication:
     <!--- it's empty and it Serves merely to create an alias for your root /Application.cfc --->
     <cfcomponent name="ApplicationProxy" extends="AdvancementServices.Application"> 
    </cfcomponent>
    Then in the Sub-Directory, I can create a sub-folder level Application.cfc extending the root Application.cfc:
     <CFCOMPONENT displayname="Application" extends="ApplicationProxy">
        <!--- Set up the sub-folder application --->
        <cfset THIS.Name = "StudentServices_stdLoad"/> 
        <cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,30,0) /> 
        <cfset THIS.SessionManagement = true/> 
        <cfset THIS.SetClientCookies = false/> 
        <cffunction name="OnApplicationStart" access="public" returntype="boolean" output="false">
           <!--- ****** Testing whether the ADVUPGRD is accessible by selecting some data.****** --->
           <cftry>
           <cfquery name="TestMain_DSN" datasource="#application.MainDSN#" maxrows="2">
             SELECT Count(*)          FROM MyTable
           </cfquery>
             <!--- If we get a database error, report an error to the user, log the error information, and do not start the application. --->
            <cfcatch type="database">
              <cflog file="#this.name#" type="error" text="Main DSN is not available. message: #cfcatch.message# Detail: #cfcatch.detail# Native Error: #cfcatch.NativeErrorCode#" >
             <cfthrow message="This application encountered an error when connecting to the Main Database. Please contact support." />
             <cfreturn false>
           </cfcatch>
         </cftry>
         <cflog file="#this.name#" type="Information" text="Application #this.name# Started">
         <cfreturn true/>
       </cffunction>
    </CFCOMPONENT>
        <cfargument name = "SessionScope" required=true/>     <cfargument name = "AppScope" required=true/>
    </cffunction>
    <cffunction name="OnSessionStart" access="public" returntype="void" output="false"> 
      <CFSET session.UserGroup = ""/> 
      <CFSET session.UserName = ""/> 
      <CFSET session.currentPage = ""/> 
      <CFSET session.loggedin = "No"/> 
      <CFSET session.userrights = ""/>
      <cfreturn/>
    </cffunction>

    OK.  It sounds to me like you really shouldn't be using a single root Application.cfc at all, if all you want to do is share some settings between your "sub-applications".  I would look at storing the common settings in an external file that all of the applications can read in.  The simplest way is to put the settings in a .CFM file somwhere outside of the web root (so it is not directly web accessible) and load it with <cfinclude> tag into the OnApplicationStart() method of each sub-application's App.cfc.  That .CFM file can be as simple as:
    <cfset application.myCustomSetting = "blahblah">
    <cfset application.myOtherSetting = "foo">
    Alternatively, you can look at using a config file like this Ray Camden blog post suggests, and use the GetProfileSection(), GetProfileString(), and SetProfileString() functions as needed within OnApplicationStart().  You could even put ALL of your settings in
    A third option is to store your settings in an XML file or in JSON format in a text file.  You could then write code to read in the XML file, and use something like xml2struct.cfc to convert the XML into a struct, then append the struct to your application scope.  If you go the JSON route, then just read in the JSON file and use DeserializeJSON() to convert it into a struct, and append it to the application scope.
    What I think is probably the best approach is to use a community-supported MVC framework like FW/1 or ColdBox (maybe you already are, I don't think you've said so though).  One of the many advantages to doing so is that they have built-in "environment" support that can be used to configure common settings, depending on your environment (dev/qa/production).  You would handle reading in your external settings through the "environment" mechanism.
    One other thing to think about: your login mechanism.  I think you want to use one set of login tools that is shared by all of the "sub-applications".  You can do this also by putting the login/authentication-related code somewhere outside the webroot of your applications, and then either set up a mapping to that location in CF Admin, or set an application-specific mapping in your various App.cfc files.  That way all the "sub-applications" share a common set of code for the login process.  I don't know how your login process works (do all users go to the same login page then get redirected into their relevant "sub-application", or does each "sub-application" have a discrete login page that utilizes common back-end processes to authenticate and redirect), so you'll have to judge how that is best accomplished.
    Hopefully this gives you some useful ideas.
    -Carl V.

  • Application.cfc versus application.cfm

    HI I have application.cfc and applicaiton.cfm in one folder. I defined same global varibales in both files with different values. I am using same global  variables in my cfml files. When I call my cfml page which values will dispaly in my page?
    Advance Thxs

    Daverms is right. But Owain and Adam are also right - you should test these things to find out. It's a much better way to learn, it actually takes less time than to wait for an answer, and you're more likely to remember the answer.
    Dave Watts, CTO, Fig Leaf Software
    http://www.figleaf.com/
    http://training.figleaf.com/
    Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
    GSA Schedule, and provides the highest caliber vendor-authorized
    instruction at our training centers, online, or onsite.
    Read this before you post:
    http://forums.adobe.com/thread/607238

  • Multiple datasources on Application.cfc file

    Is it possible to list multiple datasources on a
    Application.cfc file? If not would I just have to create a sub
    folder, create another Application.cfc and then that will control
    the folders below it?

    quote:
    For instance I set my datasource in the the application.cfc
    <cfset REQUEST.dataSource = "mydata">
    REquest.dataSource is just a variable name, you can have as
    many
    variable names as you like to define datasource strings.
    Hard Coded Variable Names:
    <cfset REQUEST.dataSourceOne = 'aDSN'>
    <cfset REQUEST.dataSourceTwo = 'bDSN'>
    Array Variable:
    <cfset request.dataSource = arrayNew(1)>
    <cfset request.dataSource[1] = 'aDSN'>
    <cfset request.dataSource[2] = 'bDSN'>
    Structure Variable:
    <cfset request.dataSource = StructNew()>
    <cfset request.dataSource.firstDSN = 'aDSN'>
    <cfset request.dataSource['secondDSN'] = 'bDSN'>
    A list:
    This would really suck. I can not think of any good reason to
    use this
    horrible method.
    <cfset request.dataSource = 'aDSN,bDSN'>
    You would then access these values like this.
    <cfquery
    datasoruce="#listGetAt(request.dataSource,2)#"...>
    Define as many Datasources as you need and use them in your
    code. Its
    just data.
    Go whole hog and build a CFC that has methods that you can
    pass a
    parameter into and it will return the DSN.
    <cfquery
    datasource="#myCFCvariable.getDSN(aValue)#"...>
    OK! This one is probably overkill.

  • Application.cfm and CFC's

    for some reason my cfc is not seeing any of the variables set
    in application.cfm. Furthermore it does not see them when I use
    application.cfc. I am running 6.1MX on iis5. Any info would be
    helpful.
    Thanks

    Duke Snyder wrote:
    > for some reason my cfc is not seeing any of the
    variables set in
    > application.cfm. Furthermore it does not see them when I
    use application.cfc. I
    > am running 6.1MX on iis5. Any info would be helpful.
    >
    > Thanks
    >
    In deference to Adam, I'm going to go ahead an make a guess.
    Directory structure is very important here. Application.cfm
    will only
    apply to code that is run in the same directory or any sub
    directory
    there under. This applies to CFC's as well. A common idea is
    to place
    a CFC in some type of common folder that is outside the
    normal
    application structure, thus the CFC is not in the directory
    structure
    under which the Application.cfm file has dominion. So it will
    not apply
    in such a case.
    If this is so, the fix is to either move the CFC so that it
    is under the
    Application.cfm dominion. Or to provide it it's own
    <cfapplication...>
    tag with the desired application name to be able to access
    the desired
    application scope. This can be done directly in the CFC file
    or an
    Application.cfm file in the CFC folder hierarchy.
    Of course doing so really complicates the usefulness of
    having CFCs in a
    common place where they can be used by multiple applications
    equally.
    Thus providing a strong argument to the OOP concept of
    encapsulation.
    That an object (component) should not be aware of anything
    outside of
    itself and everything it needs to do its job should be passed
    into it.
    I.E. Pass the required application data into the component as
    arguments
    and make use of it that way.

  • CFGrid and Application.cfc - bug??

    I don't understand what is happening here.
    If I open the cfgrid.cfm page without the Application.cfc
    file it works fine.
    With the application.cfc file the grid does not populate.
    If I comment out the cfajaximport, onrequeststart, onrequest
    and onrequestend it works fine.

    the best i could find was comment #8 by Scott Jibben here:
    http://www.forta.com/blog/index.cfm/2007/6/4/ColdFusion-Ajax-Tutorial-4-Partial-Page-Updat es
    i was apparently remembering things wrong and it is
    onRequestEnd method
    that seems to be the culprit... though i suppose depending on
    what you
    have in onRequest method may make it a collaborator too... i
    know for
    sure onRequest interferes with flash remoting and invoking
    cfc's as
    webservice...
    but why do you have <cfajaximport ...> tag in your
    Application.cfc???
    iirc, that is not a good practice - you should use it on your
    .cfm page
    in general, and in your particular case i don't think you
    need it at all.
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com

  • Difference between application.cfm and application.cfc

    Hi,
    Can anybody explain the difference between Application.cfm
    and application.cfc?
    For example:
    I have Application.cfm and Application.cfc in the same
    folder.
    /folder/application.cfm
    /folder/application.cfc
    /folder /test.cfm
    …. And I run the test.cfm.
    Which one is executed first?
    Thanks,
    Krishna

    Your last question - Which one is executed first?
    The application.cfc will be executed first if you call the
    test.cfm. The application.cfm will not get executed.
    and, about ur first question... cfm and cfc are entirely
    different. You have onRequestStart, onRequestEnd and other events
    on cfc. cfc is powerful than cfm.

  • SetEncoding() and application.cfc

    Is this a bug, or I just didn't understand the way it is
    supposed to work?
    I just finished determining that if one puts a <cfset
    setEncoding("form","encodingType")> in the
    psudo-consructor (after the
    <cfcomponent...> but before any <cffunction...)
    tags) of Application.cfc
    one will always receive empty form structures on an action
    page.
    When I tried moving said setEncoding() line to the
    onRequestStart()
    function. All was well? Is there a reason for this I do not
    understand
    with my very limited knowledge of page encoding?

    Application.cfc is event-driven, all its methods being
    events. I think
    you should expect to be in uncharted territory if you use any
    method
    different from the given list
    First, you can augment the functions of Applicaiton.cfc if
    you so
    desire, it is just that these functions will never be called
    by any
    event. But there is nothing wrong with them being called by
    functions
    called as a result of one of the defined events.
    Secondly, I was not doing this.
    Relevant parts of my Application.cfc file:
    <cfcomponent output="no">
    <cfprocessingdirective pageencoding="windows-1252" />
    <cfset variables.coding = "windows-1252">
    <!--- placing these setEncoding() functions here, in the
    psudo
    constructor, failed. This cause the form structure to always
    be empty. --->
    <cfset setEncoding("form",variables.coding)>
    <cfset setEncoding("url",variables.coding)>
    <cffunction name="onRequestStart" output="false">
    <cfargument name="requestname" required="yes">
    <!--- placing these setEncoding() functions here, in the
    onRequestStart, works fine. --->
    <cfset setEncoding("form",variables.coding)>
    <cfset setEncoding("url",variables.coding)>
    </cffunction>
    </cfcomponent>

  • Tracking users in the Application.cfc, please help

    Hello;
    I wrote a small tracking system for my web site. I am trying
    to upfrade it to work in CF 8. Here is what I am doing.
    I had this code on the index.cfm page of my site. I am
    attempting to move it to the Application.cfc file. When I do, it
    registers in the DB every time the user hits a page or clicks a
    link. I don't want it to do that. I do want it to tell me when they
    hit the site, and if I can what page they came in on.
    Here is my code:
    <cfquery name="tracking" datasource="my-DB"
    dbtype="ODBC">
    INSERT INTO tracking (REMOTE_ADDR, HTTP_USER_AGENT,
    TRACK_DATE, PageID)
    VALUES('#REMOTE_ADDR#', '#HTTP_USER_AGENT#',
    #CreateOdbcDateTime(now())#)
    </cfquery>
    My pageID is where I want the information on what page the
    user came in on to go.
    I placed teh query inside a session function code, but it
    doesn't work at all right now, I need to limit the hits counted by
    the Application.cfm, if I place it inside the area of the app that
    is for global variables, it adds info to the DB everytime they
    click a link and I don't want that. As for the entry page of the
    user, I am trying to make it so if someone enters the site lets say
    on the about.cfm page, that is added to the db and so on. Is this
    possible? If so how would I do that?
    Here is my application.cfc code so far:
    <cfcomponent output="false">
    <cfset THIS.name = "my-web">
    <cfset this.sessionManagement="yes">
    <cfset this.clientManagement=true>
    <cffunction name="onApplicationStart" returntype="boolean"
    output="false">
    <cfset APPLICATION.appStarted = now()>
    <cfreturn true>
    </cffunction>
    <cffunction name="onApplicationEnd" returntype="void"
    output="false">
    <cfargument name="appScope" required="True">
    <cflog file="#THIS.name#" text="App ended after
    #dateDiff('n' , ARGUMENTS.appscope.appStarted,now())# minutes.">
    </cffunction>
    <cffunction name="onSessionStart" returntype="query"
    output="true">
    <cfquery name="tracking" datasource="creative"
    dbtype="ODBC">
    INSERT INTO tracking (REMOTE_ADDR, HTTP_USER_AGENT,
    TRACK_DATE)
    VALUES('#REMOTE_ADDR#', '#HTTP_USER_AGENT#',
    #CreateOdbcDateTime(now())#)
    </cfquery>
    </cffunction>
    <cffunction name="onRequestStart" returntype="boolean"
    output="true">
    <cfset request.datasource = "my-db">
    <cfset sitePath = "
    http://www.myweb">
    <!--- this is where I was putting the tracking code and it
    added to the DB everytime someone clicked a link. not what I want
    --->
    <!--- Start True Url Variables --->
    <cfloop
    list="#removeChars(cgi.path_info,1,len(cgi.script_name))#"
    delimiters="/" index="variableSet">
    <cfscript>
    variableName = "url." & listGetAt(variableSet,1,'.');
    expression = listGetAt(variableSet,2,'.');
    </cfscript>
    <cfparam name="#variableName#" default="#expression#">
    </cfloop>
    <!--- Finish True Url Variables --->
    <cfreturn true>
    </cffunction>
    </cfcomponent>
    Thank you.
    Phoenix

    I did a dump and got it to error out, so it is recognizing
    the session, but it doesn't add any info to the DB. I also had to
    change it, I had it like this:
    <cffunction name="onSessionStart" returntype="query"
    output="true">
    <cfquery name="tracking" datasource="my-db"
    dbtype="ODBC">
    INSERT INTO tracking (REMOTE_ADDR, HTTP_USER_AGENT,
    TRACK_DATE)
    VALUES('#REMOTE_ADDR#', '#HTTP_USER_AGENT#',
    #CreateOdbcDateTime(now())#)
    </cfquery>
    </cffunction>
    Changed it to this:
    <cffunction name="onSessionStart" returntype="any"
    output="true">
    <cfquery name="tracking" datasource="creative"
    dbtype="ODBC">
    INSERT INTO tracking (REMOTE_ADDR, HTTP_USER_AGENT,
    TRACK_DATE)
    VALUES('#REMOTE_ADDR#', '#HTTP_USER_AGENT#',
    #CreateOdbcDateTime(now())#)
    </cfquery>
    </cffunction>
    it was erroring on the query attribute before in the session
    function. Even that change didn't get it to work properly.

  • Which to use application.cfm or application.cfc?

    Hi,
    Just a general question, i have been using application.cfm
    for my applications so far. I came across a tag that would be used
    under application.cfc, but i tried putting both templates together
    in one application and boom, an error showed up.
    So, which is better to use with most of the applications
    application.cfm or .cfc?
    Thanks for any help!
    Syed

    It's actually a bit easier to use session and application
    scope variables with Application.cfc, I think.
    Application.cfc has methods for specific "events" or states:
    onApplicationStart() -- where to load application variables,
    security logic, etc.
    onSessionStart() -- initialize session varialbes, etc.
    onRequestStart() -- runs at the start of each page request
    onRequestEnd()
    onSessionEnd()
    onApplicationEnd()
    onError() -- very nice place to get some good
    Application-wide error handling code in place
    onRequest() -- be sure to read the notes on this
    method...it's a bit different.
    Check out the MX7 reference page for Application.cfc:
    http://livedocs.adobe.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?cont ext=ColdFusion_Documentation&file=00000692.htm
    CF* (if you're using that yet)
    http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Part_3_CFML_Ref_1.html

  • Newbie question about component and UDF usage.

    This will be the 1st time I'm coding a component and UDF. I
    kind of understand the concept but not sure about how to write it
    in detail.Such as passing the parameter, etc.
    I'm starting to write a user login, verifying users before
    allowing them to enter into the app.
    So I have 2 fields in my login form, Login and password.
    Upon submitting this form, on the actionpage.cfm I'm calling
    a component. This is how I call the component:
    <CFINVOKE Component="cfc/loginaction"
    Method="AuthentiCateUser" ReturnVariable="UserInfo">
    Then in my Component I have the following:
    <CFCOMPONENT>
    <CFFUNCTION Name="AuthentiCateUser" RETURNTYPE="Query"
    hint="Use for user login">
    <CFARGUMENT Name="login" Type="Structure"
    Required="true">
    <CFARGUMENT Name="password" Type="Structure"
    Required="true">
    <!--- checking user authentication --->
    <CFQUERY NAME="Authenticate" DATASOURCE="sendfast">
    SELECT * FROM tblcustomer WHERE Login = '#Login#' AND
    Password = '#Password#'
    </CFQUERY>
    <CFRETURN AuthentiCateUser>
    </CFFUNCTION>
    </CFCOMPONENT>
    When I run this code, I got error, it said :
    The parameter LOGIN to function AuthentiCateUser is required
    but was not passed in.
    The error occurred in
    C:\CFusionMX\wwwroot\KDt_Mod\userloginaction.cfm: line 18
    16 : <CFSET
    UserLoginInfo["Password"]="#Form.Password#"> 17 : 18 :
    <CFINVOKE Component="cfc/loginaction" Method="AuthentiCateUser"
    ReturnVariable="UserInfo">
    19 :
    My question is:
    What should I do in order to pass #Form.Login# and
    #Form.Password# to my UDF within my component?
    I'm using CFMX 6 and Micrisift SQL 8

    I've applied cfinvokeargument and my login and password were
    passed to my component.
    But I'm facing new problem: Where should I write my
    authentication? should I write user authentication within my
    component or
    loginaction.cfm (the calling template)
    What I mean by authentication is something like this:
    <CFIF #Authenticate.RecordCount# IS NOT 0>
    <cfset session.CustomerID
    ="#Authenticate.customerid#">
    <cfset session.Name ="#Authenticate.Name#">
    <CFCOOKIE NAME="UserLoginIn"
    VALUE="12345_pn#Authenticate.customerid#">
    <cflocation url="index.cfm?loc=home">
    <CFELSE>
    <script language="JavaScript">
    alert("Username/password is not found, plese try again");
    history.go(-1);
    </script>
    <cfabort>
    </CFIF>
    If I keep this code in my loginaction.cfm what is returned
    from my function is not recognized by the component, the error said
    Authenticate.RecordCount is not recognized.
    Also I'm still confuse with what should I put in the
    RETURNTYPE. If I put query, it gave me error, also, what is
    returned by CFRETURN.
    This is my component:
    <CFCOMPONENT>
    <CFFUNCTION Name="AuthentiCateUser" RETURNTYPE="Query"
    hint="Use for user login">
    <CFARGUMENT Name="login" Type="Structure"
    Required="true">
    <CFARGUMENT Name="password" Type="Structure"
    Required="true">
    <!--- checking user authentication --->
    <CFQUERY NAME="Authenticate" DATASOURCE="sendfast">
    SELECT * FROM tblcustomer WHERE Login = '#Login#' AND
    Password = '#Password#'
    </CFQUERY>
    <CFRETURN AuthentiCateUser>
    </CFFUNCTION>
    </CFCOMPONENT>

  • Where is the best place to set the path with Application.cfc?

    Hi!
    When I used Application.cfm, I set many path variables here so I don't have to keep writing a full path on many of the templates repeatedly.
    So I did:
    <CFSET FileArchives = "/space/users/www/FileArchives/#session.Groups#/">
    <CFSET GoodFiles = "/space/users/www/GoodFiles/#session.usergroup#/">
    etc...
    Later on I only need to refer it as: #FileArchives# in the codes instead of a full path name.
    Now that I'm using Application.cfc can I also do the same thing???? should I do it within OnApplicationStart function? am I doing it correctly? (see below)
         <cffunction name="onApplicationStart" returnType="boolean" output="false">
               <cfset application.dsn = "EMBB">
              <CFSET application.FileArchives = "/space/users/www/FileArchives/#session.Groups#/">
              <CFSET application.GoodFiles = "/space/users/www/GoodFiles/#session.usergroup#/">
             <cfreturn true />
         </cffunction>

    Dan Bracuk wrote:
    Setting application variables in OnApplicationStart is a good idea.  However, referring to session variables in the OnApplicationStart function is not.
    Indeed.  Wading through this lot - http://adamcameroncoldfusion.blogspot.co.uk/2012/08/more-on-applicationcfc-when-things-run .html - might be helpful for the OP to get a handle on when things run, and when things become available.
    But the session scope is not available in onApplicationStart().
    Adam

Maybe you are looking for

  • Reading XML Data from ABAP Program?

    Hi, How do I read XML Data from an ABAP Program? For example if I have the below basic XML Code- <xml> <Name> Thiru </Name> <Age> 24 </Age> <City> chennai </Chennai> </xml> How do i read the data within the Name,Age, and City tags into variables in t

  • Any way to store websites outside of iweb?

    I have built a few websites in iweb including one that has pics of my daughter's field hockey games for the entire fall season. Even with the photo sizes reduced, the volume of pics (over 3000, yes, we went a little nuts) is huge and is really slowin

  • Function 'HR_READ_INFOTYPE'  not fetching any records in rfc

    Hi All,    We have created a custom info type 9110 , we have a wrapper RFC build around the function 'HR_READ_INFOTYPE' to read the data from it as we have a separate web dynpro ECC 6.0 system and a 4.7 back end system.    The rfc is working correctl

  • How to create an xml sitemap

    I was asked to create a sitemap for one site and I had to do it the hard way. I had to upload the site, went to an online xml sitemap generator, generate the xml file and upload it. But I was wondering whether DW has an option to generate an xml site

  • New user request screen problems

    HI all, I am trying to use the funcitonalty where a new portal user clicks on "Register now" screen, it sends a message to the portal admin (which comes in "User administration->Users->New user requests") and the portal admin approves it and then cre