Mailinglisten-Archive |
Hallo Stefan, Am Freitag, 23. Juni 2006 23:17 schrieb Stefan Weber: > Hallo Lutz, > > Danke für deinen Vorschlag. Meine Frameset-Datei sieht folgendermaßen > aus: ---------------------------- > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" > "http://www.w3.org/TR/html4/strict.dtd"> > <html> > <head> > <title>Verwaltung</title> > <meta http-equiv="Content-Type" content="text/html; > charset=iso-8859-1"> </head> > > <frameset rows="*" cols="225,*" framespacing="0" border="0" > frameborder="0"> <frame src="zv-start_left.php" name="left" > scrolling="NO" noresize> <frameset rows="118,*" cols="*" > framespacing="0" border="0" frameborder="0"> > <frame src="zv-start_top.htm" name="top" scrolling="NO" noresize> > <frame src="zv-start_main.htm" name="main"> > </frameset> > </frameset> > <noframes><body> > > </body></noframes> > </html> > --------------------------------- [...] > Deinen Vorschlag zu 2 kann ich nicht nachvollziehen, könntest du den > bitte erklären? Mein (gegenwärtiges) Problem liegt dain, dass ich aus > der if-Abfrage überhaupt kein Fomular aufgerufen bekomme, also auch > keine Frameset-Datei. > Verstehe ich dich richtig, dass nach dem Loginversuch, mit Aufruf der > Frameset-Datei in jedem Formular geprüft werden soll, ob der Logon > vollzogen ist und danach verfahren werden soll? Stelle ich mir auch > klasse vor, nur müßte ich dann erstmal die Frameset-Datei aufgerufen > bekommen. ich meinte das so: Du hast ja in Deiner Frame-Datei zv-start_left.php das Login-Formular. Wenn sich jemand einloggen will und das Formular mit target="_top" und action="dynamische_frameset-datei.php" abschickt, dann ruft er damit dann eine dynamische Frameset-Datei auf, die ähnlich wie obige aussieht. In dieser Frameset-Datei machst Du dann die Benutzerprüfung, die Du hier schon gepostet hattest. Je nach dem Ergebnis der Überprüfung schreibst Du dann anschliessend den passenden Frameset-HTML-Code und lädst damit die passenden Frame-Dateien. Also mal eine grobe Skizze der Frameset-Datei dynamische_frameset-datei.php zur Veranschaulichung: <?php $anmeldung_erfolgreich = false; $frame_left = 'zv-start_left.php'; $frame_top = 'zv-start_top.php'; $frame_main = 'zv-start_main.php'; if (isset ($_POST['username'])){ /* Ab hier wird erst mal Name und Passwort geprüft */ if ($_POST['username']=='PowerUser' && $_POST['password']=='TopSecret') { $anmeldung_erfolgreich = true; $frame_left = 'zv-start_left_anmeldung.php?querystring=...'; $frame_main = 'zv-start_main_anmeldung.php?querystring=...'; } else { $frame_left = 'zv-start_left_anmeldung.php?querystring=...'; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Verwaltung</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <frameset rows="*" cols="225,*" framespacing="0" border="0" frameborder="0"> <frame src="<?php echo($frame_left); ?>" name="left" scrolling="NO" noresize> <frameset rows="118,*" cols="*" framespacing="0" border="0" frameborder="0"> <frame src="<?php echo($frame_top); ?>" name="top" scrolling="NO" noresize> <frame src="<?php echo($frame_main); ?>" name="main"> </frameset> </frameset> <noframes><body> </body></noframes> </html> Ich hoffe, das beantwortet Deine Frage. :-) Das ist ein sehr eleganter Weg, der völlig ohne Javascript auskommt und auch sonst *immer* funktioniert. Das trifft nämlich auch für Deine Refresh-Lösung von heute Morgen nicht zu, weil es mittlerweile Browser gibt, wo der Anwender einstellen kann, daß solche Weiterleitungen nicht automatisch erfolgen dürfen. Wenn Du Pech hast, passiert dann im Browser des Anwenders gar nichts, außer daß er eine weiße Seite zu sehen bekommt. Wenn Du etwas mehr Glück hast, bekommt der Anwender dann auf der weißen Seite immerhin einen Link zum Weiterleitungsziel vom Browser angezeigt. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive