Inhalt über variable Laden

  • Hallo, Ich habe da so eine Idee gehabt für meine Seite. doch leider weis ich nicht wie ich das machen muss. vieleicht kann mir da jemand helfen.

    also nun zu der Idee:

    Ich habe Hauptseite, nehmen wir an index.html
    -nun habe ich da einen header mit einem Bild.
    -ein Menü welches ich mit php lade

    PHP
    <?php
    include ("menu.php");
    ?>

    -habe einen content Teil wo ich schlussendlich den Inhalt hinein mache.

    kann ich nun den Inhalt im content so laden mit Include, dass der Inhalt dort angezeigt wird.
    dass wir uns richtig verstehen:
    - sollte sich die höhe des content-teil dann dem Inhalt anpassen.
    - die indexseite ist immer die selbe.
    - die seiten die Ich lade erstelle ich in der Richtigen breite.

    Meine Idee:

    PHP
    <?php
    include ("$inhalt");
    ?>

    die Variable $inhalt übergebe ich mit dem Link. kann ich dies machen?

    die bereits erstellte Seite findet Ihr auf http://www.2007.ferronato.ch

    besten Dank schon mal im Vorraus.

  • hast du es denn einfach mal ausprobiert ob es geht? ;)

    ich würde das aber so auf garkeinen fall machen...

    wenn du keine prüfung oder ähnliches hast, kann man über die url alles includen... und wenn man sich mal vertippt, kommt ein error....

    benutz lieber ein case oder if und include dann die entsprechenden daten ;)

  • Wie meinst du das vertippen?
    Das ist ja immer so wenn man sich vertippt, kommt immer eine fehler seite.
    was ich dann noch machen muss was mir erst eingefallen ist, wenn einer über google oder so auf die inhaltsseite verlinkt wird, kommt nur der Inhalt. ok dann kann ich dies ev. nicht machen. oder kann ich dies irgendwie umgehen? so dass wenn jetzt eine Inhaltsseite angezeigt wird, sich der rest darum lädt.

    Was würdest du mir raten?

    besten dank für die Hilfe.

  • index.php?inhalt=about.php <---- das ist extrem gefährlich... so nun include ich einfach mal was anderes was vieleicht auf dem server befinden könnte
    index.php?inhalt=admin.php
    oder auch sonst was... also lieber bei inhalt=about bleiben und dann abfragen if about -> include about.php

    zu dem verlinken... mach einfach, dass man nich die anderen seiten verlinken kann... das man nur die hauptseite verlinken kann....
    dazu könntest du den dateinamen mit php abfragen und wenn der nicht index.php ist, dann soll er zur index per header weiterleiten... ;)

  • Ja das tönt ja schön und gut. aber wie mache ich das genauer?
    dies tönt nach einem grossen Aufwand für mich. und ich bin nicht so der Hirsch in Sachen PHP und so.

    was meinst du damit, es ist extrem gefährlich. ich habe so mein Menü geladen. denn so muss ich wenn ich eine Menü Änderung habe nur eine Datei ändern und nicht in allen Seiten.
    Es kann mir ja jetzt nicht irgendwer die Datei ändern gehen und dann anstelle von der menu.php einen anderen Ihalt anzeigen?

  • das du das menu includes ist ja gut... nur möchtest du (soweit ich verstanden habe) deine links so aussehen lassen : index.php?inhalt=about.php... ist das richtig?

    mit include kann ich auch externe sachen includen... also gebe ich in die url mal bissle was schönes ein und vieleicht komme ich ja an alle deine daten.... ;)
    verstehst du nun, warum ich das für gefährlich halte?

    ich würde es so machen:
    da wo du include($inhalt) hast, da würde ich eine steuerungsdatei includen... sowas wie inhalt.php...

    ind der inhalt.php steht das sowas wie:

    if ($inhalt == about) {
    include(about.php)
    }
    elseif($inhalt == impressum) {
    include(impressum.php)
    }else {
    include (start.php)
    }

  • Ich weis ja nicht wie Ich die Links beschriften muss, dass ich den entsprchenden Inhalt anzeigen lassen kann.
    also müsste ich die Links so verlinken oder wie?
    Das mit der inhalt.php finde ich eine gute Idee aber wie kann ich diese dann verlinken?

    dass diese im Content teil angezeigt wird?

    besten Dank für deine Hilfe.

  • also........ :)

    Beispiel:
    du hast eine index.php

    index.php =
    dein header
    include(menu.php);
    include(inhalt.php);
    dein footer oder sonst was...

    nun verlinkst du nur noch auf deine index.php... egal wo du was machst... nicht mehr dierekt auf die about.php....
    also sieht dein link dann so aus About

    in der inhalt.php wir dann geregelt wie dein content aussieht ;)

  • wenn du schon erfahrung mit php hast, dann schau dir mal das an, solltest du eigentlich verstehen :)

    zB index.php?page=about

    --> folgende datei wird includet: includes/about.php

    mfg

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Also ich habe dies mal so versuchshalber gemacht. und ich habe es leider nicht hinbekommen. ich denke mir mal das der Link bzw. der Inhalt nicht richtig übergeben wird. wieso?

    mein Link sieht so aus:

    Code
    [url='inhalt.php?inhalt=profil']Profil[/url]


    Der Inhalt der inhalt.php sieht dann so aus:

    PHP
    <?php
    if ($inhalt == profil) {
    include("plan.php");
    }
    elseif($inhalt == impressum) {
    include(impressum.php);
    }else {
    include ("messen.php");
    }

    doch es ladet jedesmal die messen.php

    an was liegt dies?

  • mach mal zwischen <?PHP und dem if das hier:
    $inhalt = $_GET['inhalt'];
    falls du noch post formulare hast machst du lieber sowas
    $inhalt = $_POST['inhalt'];
    if (!$inhalt) {
    $inhalt = $_GET['inhalt'];
    }

    //Edit:
    vieleicht noch eine kurze erläuterung... alle variablen aus der url solltest du mit $_GET ansprechen... wenn du ein formular hast was mit der methode post gesendet wird, musst du $_POST nehmen...

  • Ich habe dies gemacht und habe die Seiten so umgebaut:

    Die PHP Datei sieht so aus:

    Die Links habe ich alle richtig angeschrieben.
    Die übergabe des $inhalt funktioniert wunderbar.
    leider sehe ich aber im content teil in welchem ich die Datei inhalt.php lade:

    PHP
    <?php
    include ("inhalt.php");
    ?>

    keinen Inhalt.
    was muss ich jetzt machen?

    besten Dank

  • mit den 100 if's ist das nichts, dafür gibts switch..

    probiers nochmal damit, wenns nicht klappt meld dich nochmal.

    so long

  • da gebe ich phore recht.... bei sovielen ist ein switch case wirklich besser

    bei:

    $inhalt = $_GET['inhalt'];
    //falls du noch post formulare hast machst du lieber sowas
    $inhalt = $_POST['inhalt'];

    if (!$inhalt) {
    $inhalt = $_GET['inhalt'];

    da meinte ich du brauchst nur eins von beiden nehmen ;)

    also entwerder
    $inhalt = $_GET['inhalt'];
    oder
    $inhalt = $_POST['inhalt'];

    if (!$inhalt) {
    $inhalt = $_GET['inhalt'];

    ;)

  • wozu denn überhaupt if oder switch ?
    nimm meine methode, viel weniger code und wenn du ne neue seite einfügst, musst du nich jedes mal deine index ändern und neu hochladen...

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Zitat von BendOr

    wozu denn überhaupt if oder switch ?
    nimm meine methode, viel weniger code und wenn du ne neue seite einfügst, musst du nich jedes mal deine index ändern und neu hochladen...

    ich hab nichts gegen deine methode :), würds ihm auch so empfehlen. aber da er es schon mit der anderen methode gemacht hat, hab ich noch die switchvariante gepostet.

    so long

  • Das mit der Swichvariante habe ich jetzt auch gemacht.
    BendOr
    nichts gegen deine Variante, aber ich kam da leider nicht so draus. und habe es jetzt mit dieser variante gemacht. Es klappt auch soweit. es ladet auch die richtige seite. nur leider nicht in das Content sondern es macht so als ob _self da stehen würde.

    wie kann ich das noch machen?
    Mussich immer die Ganze seite laden? oder kann ich nur den Inhalt von Content nehmen?

    Besten Dank

  • in das adressfeld trägst du deine hauptseite ein... die unterseiten brauchst du also nicht mehr dierekt anwählen...
    [...]macht so als ob _self da stehen würde. [...]
    als ob? was genau gibt der server aus?

  • Also wenn ich den Link Home klicke, dann kommt nicht home im content sonder der Inhalt der im content drinn sein sollte kommt im gleichen fenster wie wenn der target auf _self stehen würde.

    alles klar?