Thorsten: Menu auslagern... will nicht funktionieren :(

Hi,

bin totaler PHP-Anfänger. Mach grad ne kleine Seite... Dabei will ich aber nicht auf jeder das Menu erneut einfügen...

Mein Ansatz:

//menu.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml/t^ransitional.dtd">
<html>
<head>
<title>Bookmarks</title>
</head>
<body>

menu...

</body>
</html>

//index.php

<html>
<head>
<title>Bookmarks</title>
</head>
<body>

<?php
include ('menu.htm');
?>

text...
</body>
</html>

...Das ganze funktioniert nur leider nicht, würd mich freuen wenn mir da jemand weiterhelfen könnte...

Danke!

  1. kürze erst einmal die

    //menu.htm

    auf

    menu...

    denn alles andere ist in der

    //index.php

    schon vorhanden und muss (und darf) nicht nochmals in der Datei auftauchen. Schau dir dazu mal in der Quellcodeansicht deines Browsers das Resultat an.

    1. Ahh, stimmt daran dacht ich auch schon, dass ich das gesamte HTML-Grundgerüst raus nehmen sollte.

      Aber so funktioniert's immer noch nicht!

      ...Was mir auch noch auffiel, ich sollte glaube ich noch einen Wert übergeben, welcher sagt auf welcher Seite ich mich gerade befinde, damit ich den entsprechenden Link farblich markieren kann. Also den link welchen ich angeklickt habe...
      Oder kann man das auch einfacher lösen?

      MfG Thorsten

      1. Moin Thorsten

        Aber so funktioniert's immer noch nicht!

        was meinst Du eigentlich mit "funktioniert nicht"? Stürzt der Rechner ab? Stürzt der Server ab? Explodiert die Festplatte? Oder kommt gar eine Fehlermeldung?

        Gruß, André

        1. Sorry, also es wird eben nichts dargestellt. (Ich habe es allerdings lokal getestet... Kann das sein, dass wir den Fehler schon gefunden haben?)

          Und vielleicht weiß jemand ne Seite wo das zweite Problem erklärt wird, also mit der Markierung der aktiven Links!
          -Weil es lädt ja dann auf jeder Seite Das Menü neu.. Und somit könnte ich es wohl nicht mit JS innerhalb des Menüs machen, oder?

          1. Hallo,

            Und vielleicht weiß jemand ne Seite wo das zweite Problem erklärt wird, also mit der Markierung der aktiven Links!
            -Weil es lädt ja dann auf jeder Seite Das Menü neu.. Und somit könnte ich es wohl nicht mit JS innerhalb des Menüs machen, oder?

            Linktipp: http://jeenaparadies.net/weblog/2004/may/php-menue

            Jeena

            --
            Gentoo Serveruhrzeit automatisch einstellen | Jlog | Gourmetica Mentiri
          2. Moin Thorsten,

            Und vielleicht weiß jemand ne Seite wo das zweite Problem erklärt wird, also mit der Markierung der aktiven Links!
            -Weil es lädt ja dann auf jeder Seite Das Menü neu.. Und somit könnte ich es wohl nicht mit JS innerhalb des Menüs machen, oder?

            so grundsätzlich, wie Deine Fragen sind, empfehle ich Dir dringend, Dich erstmal mit der PHP-Dokumentation zu beschäftigen.

            Guckst Du hier: http://www.php.net/docs.php

            Sicher kannst Du auch an eine Datei, die per include eingebunden ist, Parameter übergeben. Du definierst in deiner Hauptdatei einfach eine Variable:

            $variable = 'irgendwas';

            In der include-Datei ist diese verfügbar und kannst dann entsprechend mit dem Wert der Variable weiterarbeiten.
            Hast Du die Hauptdatei mit Parametern aufgerufen (z.B. so: haupt.php?menu=1), dann kannst Du darauf in der Include-Datei auch direkt über die Globale Variable $_REQUEST (oder $_POST, $_GET) zugreifen.

            Ein gutgemeinter Rat noch: Du solltest Dateien, welche PHP-Code enthalten können, niemals mit der Endung .html versehen, auch nicht, wenn sie "nur" per include eingebunden werden. Denn wenn jemand die Datei direkt im Browser aufruft, wird der PHP-Code nicht geparst und kann direkt angeschaut werden. Also, Dateien mit PHP-Code immer mit der Endung .php versehen.

            Gruß, André

            1. Moin Thorsten,

              Guckst Du hier: http://www.php.net/docs.php

              Danke für den Tipp, werde bei Zeit mich damit mal näher befassen, wollte ich schon länger mal...

              Sicher kannst Du auch an eine Datei, die per include eingebunden ist, Parameter übergeben. Du definierst in deiner Hauptdatei einfach eine Variable:

              $variable = 'irgendwas';

              In der include-Datei ist diese verfügbar und kannst dann entsprechend mit dem Wert der Variable weiterarbeiten.
              Hast Du die Hauptdatei mit Parametern aufgerufen (z.B. so: haupt.php?menu=1), dann kannst Du darauf in der Include-Datei auch direkt über die Globale Variable $_REQUEST (oder $_POST, $_GET) zugreifen.

              Ich kann das leider nicht 100%ig nachvollziehen...
              (Kennst du vielleicht ein Beispiel wo man ein einfaches Menu mit z.B. 5 Links hat welche dann bei aktivität eine andere Farbe haben, dabei sollte mir das ersichtlicher werden. Hab selbst shcon danach gegoogelt aber leider nichts für mich verständliches gefunden.)

              Ein gutgemeinter Rat noch: Du solltest Dateien, welche PHP-Code enthalten können, niemals mit der Endung .html versehen, auch nicht, wenn sie "nur" per include eingebunden werden. Denn wenn jemand die Datei direkt im Browser aufruft, wird der PHP-Code nicht geparst und kann direkt angeschaut werden. Also, Dateien mit PHP-Code immer mit der Endung .php versehen.

              Also in meinem Beispiel quasi die menu.htm in *.php umbenennen. Das macht auch nichts wenn darin kein Zeichen PHP-Code ist?!

              @Jeena
              Danke, ist mir aber ehrlich gesagt noch ein wenig zu Komplex, aber das wird sich ändern wenn ich mir ein wenig PHP beigebracht hab ;-)

              Und das mit meinem Beispiel war natürlich mein Fehler, ich depp hätte die Dateien natürlich auf dem Server testen sollen. Also auf dem Server ging's problemlos!!