| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

06-08-2009, 13:19
|
|
Grabber66
Newbie
|
|
Registriert seit: Jan 2004
Beiträge: 64
|
|
Frames & reload mittels Link
Hallo zusammen,
ich weiß, das das schon mehrfach abgehandelt wurde, aber leider klappt es bei mir noch nicht so wie es soll.
Zur Info.
Die Seite hat 4 Frames (top, left, main, bottom)
links ist per include das Menue einbaut.
Nun soll per Klick auf einen Menupunkt das gesammte Frameset nachgeladen
werden, mit einem neuen CSS-Stylesheet.
Gelöst habe ich das so :
index.php
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=stylesheet type=text/css href=css/<?php echo $_GET[style] ?>>
</head>
<frameset rows="80,*,80" framespacing="1" frameborder="NO" border="1" bordercolor="#000000">
<?php if (empty ($top) ) {echo '<frame src="top.php" name="top" scrolling="NO" noresize >';}
else {echo '<frame src="$top" name="top" scrolling="NO" noresize>';}?>
<frameset rows="*" cols="189,*" framespacing="1" frameborder="NO" border="1" bordercolor="#000000">
<?php if (empty ($left) ) {echo '<frame src="menu.php" name="left" scrolling="NO" noresize >';}
else {echo '<frame src="$left" name="left" scrolling="NO" noresize>';}
if (empty ($main) ) {echo '<frame src="home.php" name="main">';}
else {echo '<frame src="$main" name="main">';}
?>
</frameset>
<?php if (empty ($bottom) ) {echo '<frame src="bottom.php" name="bottom" scrolling="NO" noresize >';}
else {echo '<frame src="$bottom" name="bottom" scrolling="NO" noresize>';}
?>
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
menu.php
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=stylesheet type=text/css href=css/<?php echo $_GET[style] ?>>
</head>
<body>
<p><a href="index.php?style=1.css&main=1.php&left=menu.php&top=top.php&bottom=bottom.php" target="_parent">1</a></p>
<p><a href="index.php?style=2.css&main=2.php&left=menu.php&top=top.php&bottom=bottom.php" target="_parent">2</a></p>
</body>
</html>
Hier ist irgentein denkfehler drin, auf den ich nun seit Stunden nicht komme.
Kann mir da jemand auf die Sprünge helfen.
THX
|

06-08-2009, 13:22
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Grabber66
Hier ist irgentein denkfehler drin, auf den ich nun seit Stunden nicht komme.
|
Der Denkfehler ist, "funzt nich" für eine brauchbare Problembeschreibung zu halten.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

06-08-2009, 13:31
|
|
Grabber66
Newbie
|
|
Registriert seit: Jan 2004
Beiträge: 64
|
|
Wenn ich die Seite lade, wird alles richtig dargestellt.
Doch wenn ichaf einen der beiden Links klicke lädt die Seite zwar neu,
aber im mainframe wird immer noch home.php dargestellt. Und nicht
1.php oder 2.php
|

06-08-2009, 13:39
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Das dürfte wohl daran liegen, dass empty($main) immer true ergibt - schliesslich hast du nirgends eine Variable namens $main definiert.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

06-08-2009, 14:14
|
|
|
Das geht nur mit Javascript.
Siehe das bekannte 2frames:
Code:
<script type="text/javascript" language="JavaScript">
<!--
function zweiframes(URL1,F1,URL2,F2)
{
parent.frames[F1].location.href=URL1;
parent.frames[F2].location.href=URL2;
}
//-->
</script>
Einsatz
Code:
<a href="javascript:zweiframes('nav02.htm',1,'start02.htm',2)"> Linktext </a>
Für mehr Frames musst du das Script ändern.
|

06-08-2009, 14:20
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von piratos
Das geht nur mit Javascript.
|
Natürlich geht "das" wie beschrieben auch serverseitig - schliesslich soll immer das komplette Frameset ausgetauscht werden. (Was allerdings den Einsatz von Frames noch fragwürdiger macht - wozu sollen die dann überhaupt noch gut sein, wenn man auch serverseitig vollständige Dokumente zusammenstellen könnte?)
Man muss halt nur auf übergebene Parameter korrekt zugreifen, wenn es funktionieren soll.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

06-08-2009, 14:26
|
|
Grabber66
Newbie
|
|
Registriert seit: Jan 2004
Beiträge: 64
|
|
Danke, ich habe nun vor dem frameset folgendes gemacht :
PHP-Code:
<?php
$top = $_GET[top];
$left = $_GET[left];
$main = $_GET[main];
$bottom = $_GET[bottom];
?>
Doch das bringt mir leider nur ein Seite kann nicht gefunden werden in allen frames.
|

06-08-2009, 14:32
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Grabber66
Doch das bringt mir leider nur ein Seite kann nicht gefunden werden in allen frames.
|
Na dann schau halt in den generierten HTML-Output rein ... in wie fern das, was dort steht, von dem abweicht, was du erwartest hast.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

06-08-2009, 14:39
|
|
Grabber66
Newbie
|
|
Registriert seit: Jan 2004
Beiträge: 64
|
|
Dort stehen nicht 1.php bzw. 2.php sondern die Variable "$main" und nicht deren Inhalt ?
|

06-08-2009, 14:45
|
|
Grabber66
Newbie
|
|
Registriert seit: Jan 2004
Beiträge: 64
|
|
Habs jetzt war wieder mal ein Problem mit ' & " jetzt gehts danke für die Hilfe.
|

06-08-2009, 14:58
|
|
Grabber66
Newbie
|
|
Registriert seit: Jan 2004
Beiträge: 64
|
|
So damit es auch geklärt wird :
index.php
PHP-Code:
<title>Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
$top = $_GET[top];
$left = $_GET[left];
$main = $_GET[main];
$bottom = $_GET[bottom];
?>
<frameset rows="80,*,80" framespacing="1" frameborder="NO" border="1" bordercolor="#000000">
<?php if (empty ($top) ) {echo '<frame src="top.php" name="top" scrolling="NO" noresize >';}
else {echo "<frame src=\"$top\" name=\"top\" scrolling=\"NO\" noresize>";}?>
<frameset rows="*" cols="189,*" framespacing="1" frameborder="NO" border="1" bordercolor="#000000">
<?php if (empty ($left) ) {echo '<frame src="menu.php" name="left" scrolling="NO" noresize >';}
else {echo "<frame src=\"$left\" name=\"left\" scrolling=\"NO\" noresize>";}
if (empty ($main) ) {echo '<frame src="home.php" name="main">';}
else {echo "<frame src=\"$main\" name=\"main\">";}
?>
</frameset>
<?php if (empty ($bottom) ) {echo '<frame src="bottom.php" name="bottom" scrolling="NO" noresize >';}
else {echo "<frame src=\"$bottom\" name=\"bottom\" scrolling=\"NO\" noresize>";}
?>
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
menu.php
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=stylesheet type=text/css href=css/<?php echo $_GET[style] ?>>
</head>
<body>
<p><a href="index.php?style=business.css&main=kanzlei.php" target="_top">1</a></p>
<p><a href="index.php?&style=grunge.css&main=anwaelte.php&left=menu.php&top=top.php&bottom=bottom.php" target="_top">2</a></p>
</body>
</html>
|

06-08-2009, 19:14
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Na dann mach dich mal als nächstes schlau, was XSS ist und was man dagegen tut - das ist nämlich derzeit wunderbar möglich.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|