Solved

How to create a popup login panel that closes and refreshes the referring page when login is successful

Posted on 2003-10-31
6
585 Views
Last Modified: 2013-12-24
I want to create a popup login panel using ColdFusion and Javascript and have the popup window closed and the referring page refreshed when the login is successful.

I can already do this if the referring window is a named window so that I can simply use a url target with the same name to get back to the referring page. However this requires that the referring page has already been opened using a named url target. I want to be able to refresh the referring window without it being previously named.

Is there some javascript that will run when the login validation is done and refresh the referring page and then close the login popup panel?

Chris Gaelic
0
Comment
Question by:ChrisGaelic
6 Comments
 
LVL 17

Accepted Solution

by:
anandkp earned 250 total points
ID: 9656917
<!--- base.cfm --->
<A HREF="javascript:;" TITLE="Search Category" ONCLICK="window.open('Login.cfm','login','scrollbars=no,resizable=no,maximize=no,width=350,height=120,top=225,left=420')">Login</A>Login.cfm


show the user teh login form & on submit - send the data back to the same page [login.cfm]
using CFquery validate teh user againts teh DB like :

<!--- Login.cfm --->
<FORM NAME="frm" ACTION="login.cfm" METHOD="post">
      <INPUT TYPE="Text" NAME="user">
      <INPUT TYPE="Password" NAME="pwd">
      <INPUT TYPE="Submit">
</FORM>

<CFIF IsDefined('user')>
      <CFQUERY NAME="Qry_ValUser" DATASOURCE="Dsn">
            select userid from user where username = '#user#'
      </CFQUERY>
      <CFIF Qry_ValUser.recordcount gt 0><!--- user exists --->
            <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"><!--
                  window.opener.location.replace('loginsuccess.cfm');<!--- new page u want to redirect to --->
                window.close;
                //-->
            </SCRIPT>
      <CFELSE>
            invalid user - enter again.
      </CFIF>
</CFIF>

let me know

K'Rgds
Anand
0
 
LVL 4

Expert Comment

by:procept
ID: 9656942
Hi,

you can access the opening window by using he self.opener property:

<cfif loginIsSuccessFull>
   <script language="JavaScript">
      self.opener.location href='whateverpage.cfm'; // refresh opener window
      self.close(); // close this window
   </cfscript>
</cfif>

HTH,

Chris
0
 

Author Comment

by:ChrisGaelic
ID: 9660148
Thanks Anand, it worked a treat - the only thing you forgot was to add the brackets on the window.close - should be window.close().

Chris, thanks for your input - I tried it, but couldn't get it to work.

0
New My Cloud Pro Series - organize everything!

With space to keep virtually everything, the My Cloud Pro Series offers your team the network storage to edit, save and share production files from anywhere with an internet connection. Compatible with both Mac and PC, you're able to protect your content regardless of OS.

 
LVL 17

Expert Comment

by:anandkp
ID: 9662011
Well its more important for me to pass teh logic & the idea ... mistype can happen anytime :)

thanx for teh "B"

Cheers
Anand
0
 
LVL 17

Expert Comment

by:anandkp
ID: 9662013
Well its more important for me to pass teh logic & the idea ... mistype can happen anytime :)

thanx for teh "B"

Cheers
Anand
0
 
LVL 1

Expert Comment

by:hefterr
ID: 35945949
anandkp:
I know it's been awhile but i found this post and I am doing the same thing.

Q:  does it matter where in the page the script is located physically in the popup login window?

In your case (on a successful login) the Browser will be returned (see code snipit).  The script would be in line in the BODY after the FORM.  I'm not a JS guru so is this OK DOM wise?

hefterr




<html> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login Popup</title>
</head>
 
<body>
<FORM NAME="frm" ACTION="login.cfm" METHOD="post">
      <INPUT TYPE="Text" NAME="user">
      <INPUT TYPE="Password" NAME="pwd">
      <INPUT TYPE="Submit">
</FORM>

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"><!--
                  window.opener.location.replace('loginsuccess.cfm');<!--- new page u want to redirect to --->
                window.close();
                //-->
            </SCRIPT>


</body>
</html>

Open in new window

0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Migration from IIS6 onto IIS7 6 48
Unable To Access a Web Domain From Our Network 16 84
Reverse Proxy Server 6 78
setup wamp server for first time 2 41
Have you ever sent email via ColdFusion and thought of tracking this mail to capture the exact date and time when the message was opened ?  If yes, then this article is for you ! First we need a table user_email with columns user_id , email , sub…
Periodically we have to update or add SSL certificates for customers. Depending upon your hosting plan you may be responsible for the installation and/or key generation. In the wake of Heartbleed many sites were forced to re-key. We will concen…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now