Zum Inhalt springen

Frameset im Fenster, darüber Popup onunload Frameset neuladen.


m3rry

Empfohlene Beiträge

Moinsen,

erster Post hier ma schaun ob ihr so gut seid :P

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 :P

<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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...