Frames & reload mittels Link

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

  • #2
    Zitat von Grabber66 Beitrag anzeigen
    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.

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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('[COLOR=#FF007F]nav02.htm[/COLOR]',[COLOR=#0090E0]1[/COLOR],'[COLOR=#FF007F]start02.htm[/COLOR]',[COLOR=#0090E0]2[/COLOR])"> Linktext </a>
          Für mehr Frames musst du das Script ändern.

          Kommentar


          • #6
            Zitat von piratos Beitrag anzeigen
            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.

            Kommentar


            • #7
              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.

              Kommentar


              • #8
                Zitat von Grabber66 Beitrag anzeigen
                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.

                Kommentar


                • #9
                  Dort stehen nicht 1.php bzw. 2.php sondern die Variable "$main" und nicht deren Inhalt ?

                  Kommentar


                  • #10
                    Habs jetzt war wieder mal ein Problem mit ' & " jetzt gehts danke für die Hilfe.

                    Kommentar


                    • #11
                      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>

                      Kommentar


                      • #12
                        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.

                        Kommentar

                        Lädt...
                        X