Problem mit Übergabe...:/

  • Problem mit Übergabe...:/

    Hi,

    Das hier befindet sich in meiner einen Php-Datei, bei drücken auf Home wird die Frame.php Datei aufgerufen und es wird eine Variable "section" definiert mit dem wert "home".

    Quellcode

    1. <a href="frame.php?section=home&lang=" target="_top">HOME</a>


    Hier will ich nun den Wert der Variable "section" in $sectionname speichern und ihn anschließend in die src's einsetzten, wichtig ist hier ausserdem
    der letzte frame da sich die content.php im entsprechendem Unterverzeichnis mit dem $sectionname befindet... was mach ich falsch :/

    Quellcode

    1. <?php
    2. $sectionname = $_GET["section"];
    3. if ($sectionname==null) $sectionname=home;
    4. else
    5. $sectionname=$sectionname
    6. ?>


    Quellcode

    1. <frameset name="Top" cols="475,*" frameborder="NO" border="0" framespacing="0">
    2. <frame name="left" scrolling="NO" noresize src="left.php?section=$sectionname&lang=de&sub=" marginwidth="0" marginheight="0" frameborder="NO">
    3. <frameset rows="75,*" frameborder="NO" border="0" framespacing="0">
    4. <frame name="head" scrolling="NO" noresize src="head.php?section=$sectionname&lang=de&sub=" frameborder="NO" marginwidth="0" marginheight="0" >
    5. <frameset rows="670, *"> <frame name="content" src="$sectionname/content.php?lang=de&sub=" scrolling="AUTO" noresize marginwidth="0" marginheight="0" frameborder="NO">
  • Ich glaube, da gibt es ein allgemeines Verständnisproblem. Ist der zweite PHP-Teil und der HTML-Teil in einer Datei? Wenn nicht, kannst du nicht einfach die Variable in den Quelltext schreiben. Du kannst höchsten alles ein einem zusammenfassen. Übrigens: Das else kannst du dir in deiner Bedingung sparen. Schließlich füllst du $sectionname nur mit dem, mit dem es vorher schon befüllt war.

    Quellcode

    1. <?php
    2. $sectionname = $_GET["section"];
    3. if ($sectionname == null) $sectionname = home;
    4. ?>
    5. <frameset name="Top" cols="475,*" frameborder="NO" border="0" framespacing="0">
    6. <frame name="left" scrolling="NO" noresize src="left.php?section=<?=$sectionname; ?>&lang=de&sub=" marginwidth="0" marginheight="0" frameborder="NO">
    7. <frameset rows="75,*" frameborder="NO" border="0" framespacing="0">
    8. <frame name="head" scrolling="NO" noresize src="head.php?section=<?=$sectionname; ?>&lang=de&sub=" frameborder="NO" marginwidth="0" marginheight="0" >
    9. <frameset rows="670, *"><frame name="content" src="<?=$sectionname; ?>/content.php?lang=de&sub=" scrolling="AUTO" noresize marginwidth="0" marginheight="0" frameborder="NO
    10. ...
    Alles anzeigen


    Sollte <?=$sectionname; ?> nicht funktionieren, versuch es mal mit <?php echo $sectionname; ?>.
  • Bring erst einmal ein wenig Ordnung in dein Script:

    Quellcode

    1. <?php
    2. $sectionname = trim($_GET['section']);
    3. if(empty($sectionname)) {
    4. $sectionname = 'home';
    5. }
    6. ?>


    Und dann ersetzt du in deinem Framebaukasten

    Quellcode

    1. <?=$sectionname; ?>

    durch

    Quellcode

    1. <?php echo $sectionname; ?>

    Aber mal ganz was anderes: Wenn du schon die Möglichkeit von PHP hast, wozu dann noch Frames?

    // Edit: Lemmi war schneller ;)
  • Die Lösung ist soweit gar nicht so falsch. Es bietet sich in deinem Fall natürlich noch an, HTML und PHP zu trennen, in dem du den HTML-Teil als eine Art Template an einem seperaten Ort speicherst und einfach nur in deiner PHP-Datei einfügst. Oder meintest du jetzt eine andere Problemstellung, die du noch nicht gut gelöst findest?
    Du musst natürlich immer aufpassen, was du so über $_GET einfügst. Momentan kann im Grunde jeder über deine Seite völlig fremde Adressen öffnen, weil in diese Richtung keinerlei Sicherung stattfindet. Hierzu folgendes sicherlich sehr hilfreiches Thema - auf einer Seite, die auch zu vielen anderen Themen Tipps und Tricks bereit hällt: Wie unterscheide ich böse Variablen von guten?