Because your server var is not being set (or saved to the session, or
whatever), this really is  a Coldfusion issue.

On Fri, Dec 12, 2008 at 12:14 PM, Rick Faircloth
<r...@whitestonemedia.com> wrote:
>
> Hello, all...
>
> I appreciate everyone's help in getting my first ColdFusion/Ajax/jQuery
> code working for this login...except for one minor (sarcasm) point.
> The cf line of code in the first page below (PRE_LOGIN.CFM),
> which should prevent the login dialog from appearing after someone
> logs in, is not doing anything.  I've tried checking the variable with
> <cfdump var = '#session#'>, but I get an error saying the variable doesn't 
> exist.
> Upon successful login, it should get set (session.manager_id) in the
> manager_data.cfc below.  Why?
>
> Much of the code and approach has been hacked together from various
> tutorials, etc., not specifically dealing with login.
>
> If anyone wants to take the time to look over the code involved in the
> pages below and critique the code or approach, if even on just one point,
> it would be most welcome...it's how I learn while doing.
>
> The pages involved haven't been optimized for production in terms of their
> names, etc., this is just a proof-of-concept at this point.
>
> Anyway, here's the code and approach:
>
>
>
> PRE_LOGIN.CFM (first page visited to trigger dialogue if no one's logged
> in)--------------------------------
>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
>
> <html xmlns="http://www.w3.org/1999/xhtml";>
>
> <cfsetting showdebugoutput="no">
>
> <head>
>
>   <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
>   <script type="text/javascript" src="jquery.dimensions.min.js"></script>
>
>   <script type="text/javascript" src="shadowbox-jquery.js"></script>
>   <script type="text/javascript" src="shadowbox-2.0.js"></script>
>
>
>   <cfif not isdefined('session.manager_id')>   <=== This line, I thought, 
> would keep the script
> from running
>
>     <script type="text/javascript">
>
>          Shadowbox.loadSkin('classic', 'skin');
>          Shadowbox.loadLanguage('en', 'lang');
>          Shadowbox.loadPlayer(['flv', 'html', 'iframe', 'img', 'qt', 'swf', 
> 'wmp'], 'player');
>
>          window.onload = function(){
>
>             var options = {
>                            player:     'iframe',
>                            width:      '400',
>                            height:     '380',
>                            title:      'Login',
>                            content:    'login.cfm',
>                            };
>
>          Shadowbox.init({modal:true,enableKeys:false});
>          Shadowbox.open(options);
>          }
>
>      </script>
>
>   <cfelse>
>
>     <cflocation url="site_manager.cfm" addtoken="no">
>
>   </cfif>
>
> </head>
>
> <body>
>
>
>
>
>
> LOGIN.CFM (launched in the iframe modal window via the js in the page
> above)------------------------------
>
>
> <cfsetting showdebugoutput="no">
>
> <script language="JavaScript" src="jquery.js" type="text/javascript"></script>
>
> <script>
>
>   $(document).ready(function() {
>
>   $('#contentdiv').html('&nbsp;');
>
>   $('#login-button').click(function(){
>      var formval = {email_address:$('#email-address').val(),
>                     password:$('#password').val()};
>
>      $.ajax({
>                  type: "POST",
>                   url: "login_processor.cfm",
>              dataType: "json",
>                  data: formval,
>               success: function(response){
>                                           if (response.login == "Login 
> Successful")
>                                              { top.location.href = 
> "site_manager.cfm" }
>
>
>                                           else
>                                                        {
> $('#contentdiv').empty().fadeIn(1000).append(response.login); }
>                                          }
>
>
>               });
>         });
>   });
>
> </script>
>
> <style type="text/css">
>
>   body                 { font-family: Arial, Helvetica, sans-serif; 
> font-size:12px; color:white; }
>   #wrapper-div         { padding:40px; text-align:left; color:#fff; }
>   #databox             { border: 1px solid Gray; margin:30px auto 0px auto; 
> padding: 10px; width:
> 200px; }
>   #contentdiv          { color:white; margin-top: 10px; }
>   #shadowbox_nav_close { display:none; }
>
> </style>
>
> <div id="wrapper-div">
>
>   Email Address
>   <input id="email-address" type="text" name="email_address" size="48" /><br>
>
>   Password
>   <input id="password" type="password" name="password" size="48" /><br>
>
>   <input id="login-button" type="submit" value="Login" />
>
>   <p style="margin-top:20px;" id="contentdiv"> </p>
>
> </div>
>
>
>
>
>
> LOGIN_PROCESSOR.CFM
> --------------------------------------------------------------------------------------
>
> <cfsetting showdebugoutput="no">
>
> <cfset mdata = createObject("component","manager_data")>
> <cfset thedata = mdata.getmanagerData(form.email_address, form.password)>
> <cfset ojson = createObject("component","cfjson")>
> <cfset results = ojson.encode(thedata)>
>
> <cfoutput>#results#</cfoutput>
>
>
>
>
>
>
>
> MANAGER_DATA.CFC
> ------------------------------------------------------------------------------------------
>
> <cfcomponent displayname="manager_data" hint="Contains manager database 
> query" output="false">
>
>        <cffunction name = "getmanagerData">
>
>                <cfargument name = "email_address"      type="string" 
> required="yes">
>                <cfargument name = "password"           type="string" 
> required="yes">
>
>                <cfquery name="get_manager" datasource="login">
>
>                        select          manager_id, email_address, password, 
> my_story
>                        from            site_managers
>                        where           email_address = 
> '#arguments.email_address#'
>                        and             password = '#arguments.password#'
>
>                </cfquery>
>
>                <cfset managerStruct = structNew()>
>
>                <cfif get_manager.recordcount gt 0>
>
>                        <cfset session.manager_id = get_manager.manager_id>
>
>                        <cfset managerStruct.manager_id = 
> get_manager.manager_id>
>                        <cfset managerStruct.login = "Login Successful">
>                        <cfset managerStruct.link = "<a href = 
> 'site_manager.cfm'
> onclick='parent.Shadowbox.close();'>Continue</a>">
>
>                <cfelse>
>
>                        <cfset managerStruct.login = "Login Unsuccessful">
>                        <cfset managerStruct.link = "">
>
>                </cfif>
>
>                <cfreturn managerStruct>
>
>        </cffunction>
>
> </cfcomponent>
>
>
> And, finally, I use cfjson.cfc, too.
>
> Thanks for taking the time to review my code!
>
> Rick
>
>

Reply via email to