schwubbe: Menue im Unterordner includen

moin moin

Ich habe folgendes Problem:
Ich will meine HP überarbeiten und das Menü künftig includen.
Den aktuellen Stand könnt dort sehen:
http://neu.boadsteinschwubbe.de

Solange die einzelnen Seiten im selben Ordner sind klappt es auch prima, nur sobald ich in einen Unterordner gehe, in einer dortigen Seite das menü includen will, klappt es logischerweise nicht wegen dem Dateipfad.

Ändere ich jetzt aber im include-code den Pfad zum Menue, so findet er es zwar, jedoch bei im Menü eingebauten Links und Grafiken geht er vom Unteordner aus (Wo die aufgerufene Site liegt) und nicht vom root (Wo ja das Menü liegt), sprich: Links funzen nicht, Grafiken werden nicht eingebunden.

Wie kann ich es hinbekommen, das die Browser/Server/Who ever beim Aufrufen der Site "Warum Mami?" das Menü korrekt anzeigen und die Links korrekt ausführen?
Beim frameset ging es ja wunderbar, doch frames sind einfach out und veraltet.

Sollten euch Angaben fehlen, so reiche ich sie gerne nach, ich bin auf selfhtml noch ncht sehr bewandert :(

  1. http://neu.boadsteinschwubbe.de

    404

    Wie kann ich es hinbekommen, das die Browser/Server/Who ever beim Aufrufen der Site "Warum Mami?" das Menü korrekt anzeigen und die Links korrekt ausführen?

    Erzeuge dein Menü dynamisch und bestimme, welcher Menüpunkt der derzeigte ist anhand den Umgebungsvariablen - REQUEST_URI ist z.B. eine Möglichkeit.

    1. http://neu.boadsteinschwubbe.de

      404

      Pardon, ich habe ein r vergessen:

      http://neu.boardsteinschwubbe.de/

      (BZW: kann ich meine Beiträge hier nicht editieren?)

      Erzeuge dein Menü dynamisch und bestimme, welcher Menüpunkt der derzeigte ist anhand den Umgebungsvariablen - REQUEST_URI ist z.B. eine Möglichkeit.

      Oh je, klingt funktional, interessant aber scheint wesentlich schwieriger zu sein als man mir sagte :|
      Ich werds mir notieren und mich bei Zeiten darüber belesen wennsch was finde.

      1. Oh je, klingt funktional, interessant aber scheint wesentlich schwieriger zu sein als man mir sagte :|

        Ohne deinen Code zu kennen ist das schwer zu sagen. Prinzipiell ist es aber sehr sehr einfach.

        Sehr primitiv könnte das so aussehen:

        echo "<ul>";  
        if ($_SERVER['REQUEST_URI'] == '/foo/index.php') {  
          echo "<li><span>foo</span></li>";  
        } else {  
          echo "<li><a href="/foo/index.php">foo</li>";  
        }  
        if ($_SERVER['REQUEST_URI'] == '/bar/index.php') {  
          echo "<li><span>bar</span></li>";  
        } else {  
          echo "<li><a href="/bar/index.php">bar</li>";  
        }  
        echo "</ul>";
        
        1. Ohne deinen Code zu kennen ist das schwer zu sagen. Prinzipiell ist es aber sehr sehr einfach.
          [...]

          Das ist alles an Code was ich bzgl php verbaut habe:

          <?php  
          include("menue.inc.php");  
          ?>
          

          Dagegen ist die "primitive" Lösung für mich als php-Unerfahrenen schon.
          Mein Gästebuch ist zwar auch php, doch das war ein Fertig-Script ausm Web wo genau bei stand wo ich was ändern kann/soll/muss/darf. Ansonsten habe ich mich mit php noch nie beschäftigt. Zum erlernen ist es bei mir leider einfach zu umfangreich, es stünde in keiner Zweckmäßigkeit mehr :(

          1. Hi,

            Das ist alles an Code was ich bzgl php verbaut habe:

            <?php

            include("menue.inc.php");
            ?>

            
            > Dagegen ist die "primitive" Lösung für mich als php-Unerfahrenen schon.  
              
            Schon was?  
              
            
            > Ansonsten habe ich mich mit php noch nie beschäftigt. Zum erlernen ist es bei mir leider einfach zu umfangreich, es stünde in keiner Zweckmäßigkeit mehr :(  
              
            Wenn du in einem Unterverzeichnis bist, musst du doch nur mit der Pfadangabe eine Ebene nach oben gehen, dann kannst du die Datei auch von dort aus einbinden. (Da gilt für die Bewegung im Dateisystem des Server praktisch das gleiche wie auch bei [Pfadangaben in HTML](http://de.selfhtml.org/html/allgemein/referenzieren.htm#relativ).)  
              
            Was [EKKi dir in Bezug auf das grob fehlerhafte HTML schrieb](https://forum.selfhtml.org/?t=190714&m=1271345), solltest du aber auch unbedingt berücksichtigen und ausbessern.  
              
            MfG ChrisB  
              
            
            -- 
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
            
            1. Dagegen ist die "primitive" Lösung für mich als php-Unerfahrenen schon.

              Schon was?

              Pardon: schon recht heftig für mich.

              Ansonsten habe ich mich mit php noch nie beschäftigt. Zum erlernen ist es bei mir leider einfach zu umfangreich, es stünde in keiner Zweckmäßigkeit mehr :(

              Wenn du in einem Unterverzeichnis bist, musst du doch nur mit der Pfadangabe eine Ebene nach oben gehen, dann kannst du die Datei auch von dort aus einbinden. (Da gilt für die Bewegung im Dateisystem des Server praktisch das gleiche wie auch bei Pfadangaben in HTML.)

              OK, ich glaube damit hast du mir geholfen.
              Wenn ich ein Bild (Bild _und_ Datei im root-Verzeichnis) mit ../bild.jpg einbaue ging ich davon aus der Browser geht grundsätzlich eine Ebene zurück, denn vor meinem root hat der Betreiber ja sicher auch noch ebenen.
              Habe es eben einmal getestet und es klappte wider erwarten. Werde mir die Möglichkeit gleich weiter anschauen.

              1. Mahlzeit schwubbe,

                Habe es eben einmal getestet und es klappte wider erwarten. Werde mir die Möglichkeit gleich weiter anschauen.

                Ggf. solltest Du Dir auch das Grundlagenkapitel "<http://de.selfhtml.org/html/allgemein/referenzieren.htm@title=Referenzieren in HTML>" (nochmals) zu Gemüte führen ...

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. Mahlzeit schwubbe,

        http://neu.boardsteinschwubbe.de/

        Beseitige zunächst die offensichtlichen Fehler in Deinem Code ... danach kann man weitersehen ...

        (BZW: kann ich meine Beiträge hier nicht editieren?)

        Nein.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Mahlzeit schwubbe,

          http://neu.boardsteinschwubbe.de/

          Beseitige zunächst die offensichtlichen Fehler in Deinem Code ... danach kann man weitersehen ...
          [...]
          MfG,
          EKKi

          Hi Ekki, danke für deinen Hinweis, doch was willst du mir damit nun sagen? oO
          Der Valid-Check (or how ever) meint mein img-tag sei ungeschloßen, ist e aber nicht.
          Die anderen Fehler die da sein sollen habe nicht ich geschrieben, die kommen vom Editor. Zudem zeigt er die Fehler in Reihen an, in denen derartige Infos gar nicht stehen, weshalb ich da leider nichts mit anfangen kann :|

          1. Mahlzeit schwubbe,

            Hi Ekki, danke für deinen Hinweis, doch was willst du mir damit nun sagen? oO

            Ich eigentlich gar nichts - der Validator sagt schließlich schon alles, was gesagt werden müsste.

            Der Valid-Check (or how ever) meint mein img-tag sei ungeschloßen, ist e aber nicht.

            Es fehlt das zwingend erforderliche "alt"-Attribut.

            Das eigentliche Problem sind aber die Dateien, die Du (per PHP?) inkludierst - diese enthalten nämlich offenbar vollständige HTML-Dokumente (inkl. Dokumenttyp-Deklaration, <head> usw.) ... und das gibt dann unterm Strich invaliden Code. Sorge dafür, dass in den Dateien, die Du inkludierst und irgendwo in ein "äußeres" Dokument einbaust, lediglich die HTML-Schnipsel drinstehen, die an die entsprechende Stelle des "äußeren" Dokuments gehören!

            Die anderen Fehler die da sein sollen habe nicht ich geschrieben, die kommen vom Editor.

            Nein, die kommen von der Art und Weise, *wie* Du Deinen Code zusammenbauen (lässt).

            Zudem zeigt er die Fehler in Reihen an, in denen derartige Infos gar nicht stehen, weshalb ich da leider nichts mit anfangen kann :|

            Dann schau doch einfach mal, aus welcher Datei was kommt ...

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Mahlzeit schwubbe,
              [...]

              Der Valid-Check (or how ever) meint mein img-tag sei ungeschloßen, ist e aber nicht.

              Es fehlt das zwingend erforderliche "alt"-Attribut.

              Den habe ich bewusst weggelassen. Das Bild wird noch ausgetausch und dient während der Bauphase nur als Platzhalter. Wusste nicht das der so wichtig ist um die "Validität" zu gewähren.

              Das eigentliche Problem sind aber die Dateien, die Du (per PHP?) inkludierst - diese enthalten nämlich offenbar vollständige HTML-Dokumente (inkl. Dokumenttyp-Deklaration, <head> usw.) ... und das gibt dann unterm Strich invaliden Code. Sorge dafür, dass in den Dateien, die Du inkludierst und irgendwo in ein "äußeres" Dokument einbaust, lediglich die HTML-Schnipsel drinstehen, die an die entsprechende Stelle des "äußeren" Dokuments gehören!

              Ergo: Head-Bereich und aufwärts zB komplett weglassen und die Manue-Datei auf den Body-Bereich beschränken? Oder muss ich sogar den Body-Tag weglassen?
              In dem Fall habe ich das includieren noch nicht vollends verstanden.
              Ich ging davon aus include = "modernere" Variante zum iFrame.

              Bzgl. der fehler schaue ich also noch mal. Wobei ich pers. denke für meine kleine Hobby-Site sind sie nicht dramatisch. Aber egal, gehe ich bei. Fakt ist aber: das hilft mir nicht sehr bei meinem Problem.

              Zudem zeigt er die Fehler in Reihen an, in denen derartige Infos gar nicht stehen, weshalb ich da leider nichts mit anfangen kann :|

              Dann schau doch einfach mal, aus welcher Datei was kommt ...

              Wenn das mal so dabei stünde das ich es auch kapiere  ... :(

              1. Hi,

                Das eigentliche Problem sind aber die Dateien, die Du (per PHP?) inkludierst - diese enthalten nämlich offenbar vollständige HTML-Dokumente (inkl. Dokumenttyp-Deklaration, <head> usw.) ... und das gibt dann unterm Strich invaliden Code. Sorge dafür, dass in den Dateien, die Du inkludierst und irgendwo in ein "äußeres" Dokument einbaust, lediglich die HTML-Schnipsel drinstehen, die an die entsprechende Stelle des "äußeren" Dokuments gehören!

                Ergo: Head-Bereich und aufwärts zB komplett weglassen und die Manue-Datei auf den Body-Bereich beschränken? Oder muss ich sogar den Body-Tag weglassen?

                Wenn du es *innerhalb* des BODYs einbindest, dann darf bei der Einbindung kein zweites BODY-Element mehr kommen.

                In dem Fall habe ich das includieren noch nicht vollends verstanden.
                Ich ging davon aus include = "modernere" Variante zum iFrame.

                include in etwa gleich "copy & paste".
                Was du mit include einbindest, steht nachher so in der Antwort des Server an den Client, als hättest du es selber im Editor dort eingefügt.

                MfG ChrisB

                --
                Light travels faster than sound - that's why most people appear bright until you hear them speak.
                1. Danke Ekki & Chris

                  Habe die Form-Fehler ausgemerzt.
                  Dieser Teil hat sich somit erst einmal erledigt.

              2. Hallo

                Das eigentliche Problem sind aber die Dateien, die Du (per PHP?) inkludierst - diese enthalten nämlich offenbar vollständige HTML-Dokumente (inkl. Dokumenttyp-Deklaration, <head> usw.) ... und das gibt dann unterm Strich invaliden Code. Sorge dafür, dass in den Dateien, die Du inkludierst und irgendwo in ein "äußeres" Dokument einbaust, lediglich die HTML-Schnipsel drinstehen, die an die entsprechende Stelle des "äußeren" Dokuments gehören!

                Ergo: Head-Bereich und aufwärts zB komplett weglassen und die Manue-Datei auf den Body-Bereich beschränken? Oder muss ich sogar den Body-Tag weglassen?
                In dem Fall habe ich das includieren noch nicht vollends verstanden.
                Ich ging davon aus include = "modernere" Variante zum iFrame.

                Es ist nicht der "moderne" Ersatz für (i)frames. Es ist eine Möglichkeit, einen Programmablauf, der als Resultat auch ein HTML-Dokument ausgeben kann (das ist das, was du grad machen willst), aus mehreren Quellen zusammenzusetzen.

                Du bindest per include also mehrere HTML-Teile zusammen. Bedenke dabei, dass im Browser *ein* vollständiges HTML-Dokument ankommen soll. Ein Dokument muss auch mit einer Programmiersprache so zusammengebaut werden, wie man es z.B. auch händisch (z.B. im Editor) täte. Dazu hat es Regeln zu folgen, die auch sagen, dass es in *einem* Dokument *einen* <head> und *einen* <body> mit seinen Inhalten gibt. Wenn es diese Elemente im Dokument schon gibt, dürfen Routinen, die weitere Inhalte einbinden, dem Dokument eben auch *nur noch diese* Inhalte hinzufügen.

                Tschö, Auge

                --
                Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
                Terry Pratchett, "Wachen! Wachen!"
                Veranstaltungsdatenbank Vdb 0.3