m3rry Geschrieben 27. Januar 2006 Teilen Geschrieben 27. Januar 2006 Moinsen, erster Post hier ma schaun ob ihr so gut seid Nein, also dann hier mal mein Problem. Aus einem Framset [index.php, top.php,main.php / _top, _main] öffne ich ein neues "Window" mittels JavaScript, dies ist eine PHP Datei mit der man sich einloggt, es werden Session Variabeln registriert und das Fenster schliesst sich automatisch nach erfolgreichen Login nach 2 Sekunden. Nun soll das dahinter liegende Framset welches ja während des Loginvorganges stets geöffnet war neu geladen werden, es ist mir egal ob der komplette Frameset oder nur ein Teil des Framsets neu geladen wird, hauptsache es funktioniert. Das Popupfenster schaut momentan so aus: (zumindest in dem Fall wichtige html teil) Am Besten einfach umschreiben und postn, daaaanke hab euch lieb <html><head><title>--Login--</title> <script LANGUAGE="JavaScript">setTimeout("self.close();",<? print $timeout; ?>);</script> </head> <body bgcolor="#CCBDA8"> <form name="form1" method="post" action="logon.php"> <p class="standard"><span class="standard">Benutzername:</span></p> <p> <span class="standard"> <input type="text" name="User"> </span></p> <p class="standard">Passwort:</p> <p> <span class="standard"> <input type="password" name="Pass"> </span></p> <p> <input type="submit" name="Abschicken" value="Anmelden"> </p> </form></body></html> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 27. Januar 2006 Teilen Geschrieben 27. Januar 2006 Hallo und willkommen bei FI.de! Als Tipp für's nächste mal: Benutz die CODE, HTML oder PHP BBcodes --> http://forum.fachinformatiker.de/misc.php?do=bbcode um Markup ordentlich zu formatieren. Wenn ich dich richtig verstanden hab, suchst Du nach folgendem: popup.php (Hauptdatei): <?php @session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> <title>Opener Test</title> </head> <body> <?php if ($_GET['action'] == 'logout') { unset($_SESSION['angemeldet']); } if (!$_SESSION['angemeldet']) { echo '<p><a href="javascript:void(0);" onclick="window.open(\'popup2.php\', \'Anmelden\')">Fenster öffnen, weil noch nicht angemeldet</a></p>'; } else { echo '<p>Angemeldet! <a href="?action=logout">Abmelden?</a></p>'; } ?> </body> </html> [/PHP] popup2.php (das neue Fenster): [PHP] <?php @session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> <title>Opener Test</title> </head> <body> <?php if ($_GET['action'] == 'login') { $_SESSION['angemeldet'] = true; echo '<script type="text/javascript">'; echo 'self.opener.location.href = \'popup.php\';'; echo 'window.close();'; echo '</script>'; } else { echo '<p><a href="?action=login">Zum Anmelden hier klicken!</a></p>'; } ?> </body> </html> Hoffe es hilft. Viele Grüße, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 28. Januar 2006 Autor Teilen Geschrieben 28. Januar 2006 Hallo Tobias, leider hilft mir das nicht. Um mal bei deinem Beispiel zu bleiben, du öffnest von popup (wenn nicht angemeldet. In meinem Fall wäre popup der Frameset) popup2 dort kann man sich dann anmelden. Wenn man sich nun dort in popup2 anmeldet, geht mein Fenster mittels timeout nach erfolgreicher Anmeldung automatisch zu. Nun kann ich eigentlich nur noch eine javascript "onunload" funktion benutzen, weil ich auch will da sich das loginfenster automatisch schliesst, nach erfolgreicher Anmeldung. Die onunload Funktion soll einfach nur das Frameset also das Hauptfenster im Hintergrund neu laden. Damit der User auch weiß, das sein Login durchgeführt wurde und er nun auf alle ihm zugestandenen Funktionen der Seite Zugriff hat. In deinem Beispiel gehtst du praktisch von einem Popup zum nächsten und wieder zurück. Ich will aber keine neue Seite öffnen, sondern die alte mit der ich das Popup zum Anmelden geöffnet habe neu laden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 28. Januar 2006 Teilen Geschrieben 28. Januar 2006 leider hilft mir das nicht. Hallo! Ich glaube, Du hast das nur nicht ganz verstanden. Vielleicht habe ich es auch zu mißverständlich dargestellt. Um mal bei deinem Beispiel zu bleiben, du öffnest von popup (wenn nicht angemeldet. In meinem Fall wäre popup der Frameset) popup2 dort kann man sich dann anmelden. Wenn man sich nun dort in popup2 anmeldet, geht mein Fenster mittels timeout nach erfolgreicher Anmeldung automatisch zu. Die Datei popup.php kannst du auch in frameset.php oder hans-pans.php umbenennen. Ich wollte mit dem Namen nicht ausdrücken, dass es sich hierbei um ein popup handelt, es ist lediglich ein Name. Du musst das neue Fenster (popup2.php) ja nicht per timeout schließen. window.close(); geht ja auch. Nun kann ich eigentlich nur noch eine javascript "onunload" funktion benutzen, weil ich auch will da sich das loginfenster automatisch schliesst, nach erfolgreicher Anmeldung. Wieso willst Du den "onunload" Event benutzen? Was soll da passieren? In meinem Beispiel lädt die Datei popup2.php sein erzeugendes Fenster neu und schließt sich dann selbst: self.opener.location.href = 'popup.php'; window.close(); Wozu also "onunload"? Die onunload Funktion soll einfach nur das Frameset also das Hauptfenster im Hintergrund neu laden. Damit der User auch weiß, das sein Login durchgeführt wurde und er nun auf alle ihm zugestandenen Funktionen der Seite Zugriff hat. s. o.! In deinem Beispiel gehtst du praktisch von einem Popup zum nächsten und wieder zurück. Ich will aber keine neue Seite öffnen, sondern die alte mit der ich das Popup zum Anmelden geöffnet habe neu laden. Ne, mach ich nicht. Wie beschrieben: die Datei popup.php ist kein popup. Die Datei popup2.php wird von der Hauptdatei per window.open(); geladen und ist somit das einzige popup in meinem Beispiel. Bedenke, dass die Methode open() immer ein neues Fenster erzeugt. Ein popup im technischen Sinne gibt es nicht. Als popup bezeichnet man normalerweise lediglich ein Fenster, dass keine Status-, Adress-, Werkzeug- oder Navigationsleiste enthält, sowie auf eine bestimmte Größe gesetzt wird. Mehr zu open() findest Du bei selfhtml. Grüße, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 29. Januar 2006 Autor Teilen Geschrieben 29. Januar 2006 Naja also ja im Grunde funktioniert es wohl auch so wie du es gelöst hast. Ich hab nach dem hier gesucht: <html> <head> <script> function loged_in() { opener.document.location.reload(); setTimeout("self.close();", 0); } </script> </head> <body onUnload="loged_in()"> Vielen Dank für deine Mühe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 29. Januar 2006 Teilen Geschrieben 29. Januar 2006 Hi! Ist setTimeout("self.close();", 0); nicht sogar das gleiche wie self.close(); ? Grüße, Tobias Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
m3rry Geschrieben 29. Januar 2006 Autor Teilen Geschrieben 29. Januar 2006 Ja es ist das Gleiche, aber darum geht es nicht und ging es nie. Es ging um die Onunload Funktion. Das sich das Fenster automatisch schliesst ist zweitrangig, aber dennoch vorteilhafter, weil der Anwender sich nicht darum kümmern muß das Fenster zu schließen. Egal ob er es selbst macht oder nicht, der Frameset wird mit onunload neu geladen, was er in deinem nicht tut, da man hier einen Link klicken muß. Ist einfach schöner wenn man sich anmeldet nicht noch einen Link zu klicken. Zusätzlich kann man vor dem Schließen noch eine Info mitgeben, z.B: "Die Anmeldung war erfolgreich !" "Fenster schließt in 2 Sekunden" Viele Grüße Kay Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tobias-digital Geschrieben 29. Januar 2006 Teilen Geschrieben 29. Januar 2006 Ach so, jetzt versteh ich! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.