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

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
ChrisGaelicAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

anandkpCommented:
<!--- 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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
proceptCommented:
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
ChrisGaelicAuthor Commented:
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.

Active Protection takes the fight to cryptojacking

While there were several headline-grabbing ransomware attacks during in 2017, another big threat started appearing at the same time that didn’t get the same coverage – illicit cryptomining.

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

thanx for teh "B"

Cheers
Anand
anandkpCommented:
Well its more important for me to pass teh logic & the idea ... mistype can happen anytime :)

thanx for teh "B"

Cheers
Anand
hefterrCommented:
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

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Servers

From novice to tech pro — start learning today.