hi guys i think am making progress. this is what i have so far.

"login_example.mxml"

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" xmlns:view="components.*">
        <mx:states>
                <mx:State name="Log Out">
                        <mx:SetProperty target="{label1}" name="text" 
value="Log Out"/>
                </mx:State>
        </mx:states>
        <mx:Script>
                <![CDATA[
                        import components.*;
                        import mx.containers.TitleWindow;
                        import mx.controls.Alert;
            import mx.events.CloseEvent;
            import flash.events.Event;
            import mx.managers.PopUpManager;
            import mx.core.IFlexDisplayObject;
            
            public var loggedin:Boolean = false;
                public var pop:Login;
            private function showLogin():void
            {
                pop = Login(PopUpManager.createPopUp(this,Login,true));
                pop.showCloseButton =true;
                PopUpManager.centerPopUp(pop);                  
                pop.addEventListener("close",removeMe);
                pop["cancelButton"].addEventListener("click", removeMe);
                pop["okButton"].addEventListener("click",processLogin);
            }
            private function removeMe(event:Event):void {
                PopUpManager.removePopUp(pop);
            }  
            private function processLogin(event:Event):void
            {
                if(pop.username.text == "" || pop.password.text == "")
                {
                        Alert.show("Login name and password are required
fields.","WARNING::Login Alert");
                }
                else
                {
                        // log user in or something...
                        lbl_intro.text = "Welcome " +pop.username.text;
                        removeMe(event);
                        viewstack1.selectedChild = admin;
                        currentState = 'Log Out';
                }
            }
                ]]>
        </mx:Script>
        <mx:Label x="0" y="0" text="Sign In" id="label1" buttonMode="true"
useHandCursor="true" mouseChildren="false" click="showLogin()"/>
        <mx:ViewStack x="0" y="26" id="viewstack1" width="100%" height="100%">
                <view:Home id="home"/>
                <view:Admin id="admin"/>
        </mx:ViewStack> 
        <mx:Label x="700" y="0" id="lbl_intro"/>
</mx:Application>

"login_form.mxml"

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" title="Login Form">   
        <mx:Form x="0" y="0">
                <mx:FormItem label="User Name:">
                        <mx:TextInput id="username"/>
                </mx:FormItem>
                <mx:FormItem label="Password:">
                        <mx:TextInput id="password"/>
                </mx:FormItem>
        </mx:Form>
        <mx:ControlBar>
                <mx:HBox width="100%">          
                        <mx:Button label="Login" id="okButton"/>
                        <mx:Spacer width="100%"/>
                        <mx:Button label="Cancel" id="cancelButton"/>
                </mx:HBox>
        </mx:ControlBar>        
</mx:TitleWindow>

now i would like to connect that to this coldfusion script to have the
cfc match login details from flex and database

"memberservice.cfc"

<!---
        COMPONENT: MemberService
        AUTHOR: Bruce Phillips, [email protected]
        DATE: March 2007
        PURPOSE: Provides service functions related to a Member
        CHANGE HISTORY:
                
--->

<cfcomponent displayname="MemberService" output="false" hint="Member
Service">

    <!---document each instance variable--->
        <cfproperty  name="dsn"  displayname="Datasource Name"
hint="Datasource name used to connect CF to the database" 
        type="string">
        
        <!---initilization area - acts like a constructor as its called
automatically--->
        
        <cfscript>
        
                variables.dsn = 'usr_grp';
        
        </cfscript> 
        
        <cffunction name="init" access="public" output="false"
returntype="MemberService" hint="Constructor for this CFC">
                <!--- take in the datasource name as an argument and set it to 
the
variables scope so it's available 
                                throughout the CFC --->
                <cfargument name="dsn" type="string" required="true" />
                <cfset variables.dsn = arguments.dsn />
                
                <!--- return the object itself --->
                <cfreturn this />
        </cffunction>
        
        
        
        <cffunction name="getMemberByUserNameAndPassword" access="public"
output="false" returntype="Member" 
                        hint="Tries to find a record with a matching username 
and password.
 If only 1 record
                                is found creates a Member object using the 
record's column values.">
                <cfargument name="aUserName" type="string" required="true" />
                <cfargument name="aPassword"  type="string" required="true" />
                
                
                <cfset var getMember = "" />
                
                <cfscript>
                
                   var aMember = createObject("Component","Member").init();
                
                
                </cfscript>
                
                        
                <cftry>
                
                  
                   
                 
                        <cfquery name="getMember" datasource="#variables.dsn#">
                        
                                select memID, memUserName, memPassword, 
memFirstName, memLastName,
memEmail
                                from member
                                where memUsername = <cfqueryparam 
cfsqltype="cf_sql_varchar"
value="#arguments.aUserName#">
                                and memPassword = <cfqueryparam 
cfsqltype="cf_sql_varchar"
value="#arguments.aPassword#">
                                
                        </cfquery>
                        
                        
                        <!---throw error if no records were found--->
                        <cfif getMember.recordCount EQ 0>
                        
                                <cfthrow type="Member.NoRecordsFound" 
message="No members with
with username of #arguments.aUserName# and password of
#arguments.aPassword# were found">
                        
                        </cfif>

                        <!---throw error if more than one record was found, 
violates
business rule--->
                        
                        <cfif getMember.recordCount GT 1>
                        
                                <cfthrow type="Member.TooManyFound" 
message="Too many members with
username of #arguments.aUserName# and password of
#arguments.aPassword# were found" />
                        
                        </cfif>
                
                        <cfcatch type="database"> <!---there was a problem with 
a query--->
                        
                                
                                <cfthrow type="Member.select" 
message="#cfcatch.detail#" />
                                
                  </cfcatch>
                        
                        
                </cftry>
                
                <!---update the aMember object with values found in the record's
columns--->
                
                <cfscript>
                
                        aMember.setMemberID( getMember.memID);
                        aMember.setUsername( getMember.memUserName);
                        aMember.setPassword( getMember.memPassword);
                        aMember.setFirstName( getMember.memFirstName);
                        aMember.setLastName( getMember.memLastName);
                        aMember.setEmail( getMember.memEmail);
                
                
                </cfscript>
                
                <cfreturn aMember />
                
        </cffunction><!---end function getMemberByUserNameAndPassword--->
        
        
        <cffunction name="createMemberService" access="public" output="false"
returntype="void" 
                        hint="Pass Member object onto MemderDAO create 
function">
                        
                <cfargument name="aMember" type="Member" required="yes" />
                
                <cfset var aMemberDAO = "" />
                 
                 
                 <cftry>
                         <cfscript>
                           aMemberDAO = createObject("component",
"MemberDAO").init('fluid_login');
                           aMemberDAO.create(aMember);
                         </cfscript>
                    
                        
                 <cfcatch type="Member">
                 
                        <cfthrow type="Member.create" 
message="#cfcatch.message#" />
                 
                 </cfcatch>
                 
                 </cftry>
                                
        </cffunction>
        
        
        
</cfcomponent>


Reply via email to