Seite 1 von 1

Login von Forumsseite auf der Homeseite einbetten?

Verfasst: 14.05.2011 09:55
von Mynoriem
Hallo

Ich habe folgendes problem.....

Der Login zum Forum soll auf die Homeseite der website mit folgendem code...

Code: Alles auswählen

<center>
    <form action="hp/forum/ucp.php?mode=login" method="post" >
        <h3><a href="./ucp.php?mode=register">Registrieren</a></h3>
        <fieldset>
            <label for="username">Benutzername:</label> 
            <input type="text" name="username" id="username" size="10" title="Benutzername" />
            <label for="password">Passwort:</label> 
            <input type="password" name="password" id="password" size="10" title="Passwort" />
            <input type="submit" name="login" value="Anmelden"/>
	    <label for="autologin">Mich bei jedem Besuch automatisch anmelden <input type="checkbox" name="autologin" id="autologin" /></label>
        </fieldset>
    </form>
</center>
das ganze wird in einem popup dargestellt wenn man auf eine grafik klickt...

Code: Alles auswählen

<?php include('script/loginfenster.js')?>
<a href="home.php" onclick="popUp();"><img src='images/login.jpg' alt='Login' title='Login'>
das javascript sieht so aus...

Code: Alles auswählen

<script language="javascript" type="text/javascript">
var win=null;
onerror = stopError;
function stopError(){
	return true;
}

function popUp(){
	myleft=20;
	mytop=20;
	settings="width=500,height=200,top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,dependent=no";
	win=window.open("include/loginfenster.php","Login",settings);
	win.focus();
}
</script>
so das problem ist das ich das popup nicht geschlossen bekomme bzw. das wenn ich es mit self.close() schliesse die daten nicht gesendet werden und recht unelegant mit setTimeout("self.close(), 3000) garnichts passiert.

js hab ich leider ne glatte 6 und finde keinen lösungsansatz.

meine idee ist eigentlich das ich in einer abfrage prüfe ob die daten gesendet wurden und dann erst self.close() ausführe, habe aber keine idee wie ich das umsetzten soll.

bitte helft mir :oops:

Re: Login von Forumsseite auf der Homeseite einbetten?

Verfasst: 14.05.2011 10:31
von Elsensee
Das Fenster solltest du mit

Code: Alles auswählen

window.close();
schließen.

Re: Login von Forumsseite auf der Homeseite einbetten?

Verfasst: 15.05.2011 12:51
von Mynoriem
mit window.close() ist es das selbe wie mit self.close().
Fenster schliesst aber daten werden nicht gesendet "ist das prinzip wer zuerst kommt malt zuerst" und window.close() ist halt schneller als das daten senden.

Im phpbb code in der datei ucp.php müssten die daten ja aufgefangen werden und da kann ich wiederum einsteigen und nach erfolgreichem empfang das fenster dort schliessen lassen mit pfadangabe. ich habe aber im code bis jetzt nichts gefunden.

Oder sollte ich nen anderen lösungsweg wählen? (am popup geht kein weg vorbei. es muss zwingend im popup angemeldet werden)

Re: Login von Forumsseite auf der Homeseite einbetten?

Verfasst: 16.05.2011 12:41
von Elsensee
Da du ja (ich hoffe) nach dem Login auf ucp.php?mode=login umgeleitet wirst (und es davor eine andere Seite ist) könntest du doch z.B. ein Intervall setzten.
Wie wärs so:

Code: Alles auswählen

var pruef_intervall = setInterval("pruefen()", 500);
Der ruft "pruefen()" alle halbe Sekunde auf.
Code für prüfen:

Code: Alles auswählen

function pruefen() {
  if (window.location.href == "http://www.deinedomain.tld/ucp.php?mode=login")
  {
    clearInterval(pruef_intervall);
    window.close();
  }
}
Beides muss in der selben Datei sein.
Z.B. würde es dann so aussehen:

Code: Alles auswählen

<script language="javascript" type="text/javascript">
var pruef_intervall = null; //<-- neu
var alte_adresse = null; //<-- neu
var win=null;
onerror = stopError;
function stopError(){
   return true;
}

function popUp(){
   myleft=20;
   mytop=20;
   settings="width=500,height=200,top=" + mytop + ",left=" + myleft + ",scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,dependent=no";
   win=window.open("include/loginfenster.php","Login",settings);
   win.focus();
   alte_adresse = "http://www.deinedomain.tld/include/loginfenster.php"; //<-- domain und adresse ggf. anpassen
   pruef_intervall = setInterval("pruefen()", 500);
}

function pruefen() { // <-- neu
   if (window.location.href == "http://www.deinedomain.tld/ucp.php?mode=login") // <-- domain ändern
   {
      clearInterval(pruef_intervall);
      window.close();
   }
   else if (window.location.href != alte_adresse)
   {
      clearInterval(pruef_intervall);
   }
}</script>
Hab die Stellen, wo du noch was ändern musst auskommentiert.
Das ist alles nicht getestet, habe es gerade aus meinem Ärmel geschüttelt. Hoffe du blickst durch. :wink: