Crowner: include einer Variabel mit Get

Hallo leute

Ist etwas zu banales, aber irgendwie steck ich fest, weiss jedoch nicht wesshalb.

Das verrückte ist, ich wurde auch nicht über google und http://www.php.net/ schlauer.

Also ich habe 2 Ebenen in meiner homepate und in der unteren soll jeweils die gewählte seite erscheinen (diese Ebene ersetzt sozusagen einen Frame).

Wollte das einfach gesagt so lösen:
...body>

<?
if ($goto = "")
$goto = "home";

$finalurl = "mainframe/".$goto.".php";

?>
</head>

<body>
<div id="NavLayer"><? include "navigation.php"; ?></div>
<div id="MainLayer"><? include $finalurl; ?>

</body...

Das ziel ist, dass ich danach über die URL die Seite welche eingebunden werden sollte angeben kann (Bsp. "index.php?goto=agenda" und diese dann im "MainLayer" erscheint.

Hoffe auf baldige Antwort

Vielen Dank
Crowner

  1. n'abend,

    leider erwähnst du mit keinem einzigen Wort was passiert, oder eben gerade nicht passiert. Was passieren soll wurde soweit erläutert und mit Beispielcode  untermauert, dass ich gerne folgendes los werden möchte:

    (a) Benutzereingaben möchten grundsätzlich geprüft werden. Wenn du die URL www.domain.com/script.php?page=home betrachtest, so ist page als Benutzereingabe anzusehen. Warum? Na weil sie spielend einfach vom Benutzer manipuliert werden kann. Benutzereingaben möchten zunächst auf Existenz und dann auf Validität geprüft werden.

    $erlaubteSeiten = array( 'home', 'übermich', 'überfrösche', 'dersinndeslebens' );  
    $unterSeite = (isset($_GET['seite']) && in_array($_GET['seite'], $erlaubteSeiten)) $_GET['seite'] : 'home';
    

    Diese Zeilen stellen sicher, dass nur die Werte in $erlaubteSeiten übergeben werden können, sollte ein anderer Wert übergeben werden, oder der Parameter gar nicht gesetzt worden sein, so wird 'home' als Standardwert gesetzt.

    (b) lässt sich aus deinem Beispiel erahnen, dass du auf register_globals vertraust. Das solltest du _nicht_. Benutze die SuperGlobals.

    (c) wenn du in deinen inkludierten Dateien keine PHP-Scripts erwartest, dann möchtest du diese per readfile() oder mit file_get_contents() einlesen.

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. n'abend,

      leider erwähnst du mit keinem einzigen Wort was passiert, oder eben gerade nicht passiert.

      Sorry, mein Fehler ...
      Also es kommt folgende Fehlermeldung:

      Warning: include(mainframe/.php) [function.include]: failed to open stream: No such file or directory in C:\XAMPP\xampp\htdocs\index_ebene.php on line 40

      Warning: include() [function.include]: Failed opening 'mainframe/.php' for inclusion (include_path='.;C:\XAMPP\xampp\php\pear') in C:\XAMPP\xampp\htdocs\index_ebene.php on line 40

      (Habe wie ihr seht einen lokalen Testserver mit XAMPP der bisher auch einwandfrei funktioniert, denk daher nicht, dass es an dem liegt.)

      Aus irgend einem Grund übernimmt er die information aus der Adressleiste (index.php?goto=home) nicht.

      Greez Crowner

      Und werde natürich deine Links mal genau studieren, vielen dank jedenfalls für die rasche Antwort!

      1. n'abend,

        Aus irgend einem Grund übernimmt er die information aus der Adressleiste (index.php?goto=home) nicht.

        in meinem vorigen Posting habe ich im Punkt (b) bereits etwas über register_globals von mir gegeben.

        Wenn du script.php?goto=123 aufrufst, dann kannst du in dem Script nicht einfach auf die Variable $goto zugreifen, sondern musst auf $_GET['goto'] zugreifen.
        Dieses "muss" ist zwar relativ, aber definitiv die sichere Seite.

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|