phpbar.de logo

Mailinglisten-Archive

[php] Aufuf einer HTML-Seite über php?

[php] Aufuf einer HTML-Seite über php?

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Sam Jun 24 08:00:06 CEST 2006


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