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