moe123: Unterseiten nur von index zugänglich machen?

Hallo!

Ich include meine Unterseiten in meine Index.php indem ich jeder unterseite eine Variable zuweise. Es besteht aber die Möglichkeit besagte Unterseiten auch über eine seperate Adresse durch manuelle eingabe der URL in der Browserzeile zu öffnen. Gibt es eine Möglichkeit das zu verhindern?

Danke im Voraus

  1. Moin,

    Hallo!

    Ich include meine Unterseiten in meine Index.php indem ich jeder unterseite eine Variable zuweise. Es besteht aber die Möglichkeit besagte Unterseiten auch über eine seperate Adresse durch manuelle eingabe der URL in der Browserzeile zu öffnen. Gibt es eine Möglichkeit das zu verhindern?

    Ich hoffe Du überprüfst Deine Variablen auf Gültigkeit?
    Und; Wozu benutzt Du diese Variablen wen Du Sie nicht haben möchtest?
    Ein Lösung für Dein Problem könnte Sessons lauten, nur solltest Du mal erklären was Du mit Deiner Frage überhaupt bezweckst?
    Mal ne persönliche Frage hast Du PHP zu Weihnachten bekommen und probierst gerade mal aus was man alles so machen kann?
    Ist Dir bewußt, dass Du großen Schaden anrichten kannst wenn Du nicht weißt was Du tust?
    Dein Fragen lassen erkennen, dass Dir minimale Grundkenntnisse fehlen.
    Das ist per se nicht schlimm, nur mache Dir klar dass Du lernen mußt, und besorge Dir ein kleines Buch.

    TomIRL

    1. Selbstverstaendlich ist mir klar das ich noch viel lernen muss =/
      Bin ja schließlich Anfänger.

      --
      Ich habe mich da wohl etwas unklar ausgedrueckt ...
      Vereinfachtes Beispiel:

      <?php
      if ($seite==bla)
      {include("./bla.php");}
      elseif ($seite==bla2)

      usw...

      else {include("./bla.php");}
      ?>

      <a href="./index.php?seite=bla">Link1/a>

      Erklaert sich soweit ja alles von selbst denke ich, Methode sollte wohl auch weit verbreitet und algemein bekannt sein.

      Wenn nun die seite bla2.php nur ein paar Zeilen text enthaelt, oder etwas anderes das nur in die index.php included einen sinn ergibt, so ist es doch wohl durchaus verstaendlich das man die seite bla2.php nicht einzelnd zugaenglich machen will.

      Was Session betrifft, so werde ich gleich mal nachsehen was es damit auf sich hat.
      Danke erstmal für den Hinweis.

      1. Hello,

        <?php
        if ($seite==bla)
        {include("./bla.php");}
        elseif ($seite==bla2)

        usw...

        else {include("./bla.php");}
        ?>

        Wozu diesen überwändlichen Aufruf, wenn doch der Aufruf auch direkt durch einen Link geschehen kann?

        Und wenn er eben nicht durch einen Link geschehen darf, dann müssen die einzubindenen Teile eben in einem geschützten Verzeichnis, am besten außerhalb der Document Root, liegen. Von dort wird der Webserver sie nicht ausliefern, sondern nur einen 404 oder ähnlich quittieren.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Wozu diesen überwändlichen Aufruf, wenn doch der Aufruf auch direkt durch einen Link geschehen kann?

          Es ist kein seperater Aufruf, sondern ein Include...
          Die Index.php enthaelt saemtliche Layout Objecte. Welchen Sinn haette es den dan bitte, Únterseiten die evtl. nur aus 2 Wörtern bestehen einzelnd zu verlinken?

          Und wenn er eben nicht durch einen Link geschehen darf, dann müssen die einzubindenen Teile eben in einem geschützten Verzeichnis, am besten außerhalb der Document Root, liegen. Von dort wird der Webserver sie nicht ausliefern, sondern nur einen 404 oder ähnlich quittieren.

          Ist das die einzige Möglichkeit?

          1. Hello,

            Es ist kein seperater Aufruf, sondern ein Include...

            Es ist mir klar, was Du da baust...

            Wozu ein Include, wenn doch nur zwei Wörter drinstehen? Das wird doch kein PHP-Code sein, oder?
            Include ist nur dann angemessen, wenn zu interpretierende Teile in der Datei enthalten sind.
            Sonst sollte man immer eine passive Möglichkeit (readfile(), file_get_contents(), ...) benutzen!

            Die Index.php enthaelt saemtliche Layout Objecte. Welchen Sinn haette es den dan bitte, Únterseiten die evtl. nur aus 2 Wörtern bestehen einzelnd zu verlinken?

            DU hast Dich doch darüber beschwert, dass die Seiten auch direkt verlinkt würden.

            Und wenn er eben nicht durch einen Link geschehen darf, dann müssen die einzubindenen Teile eben in einem geschützten Verzeichnis, am besten außerhalb der Document Root, liegen. Von dort wird der Webserver sie nicht ausliefern, sondern nur einen 404 oder ähnlich quittieren.

            Ist das die einzige Möglichkeit?

            Eine vernünftige Lösung reicht doch wohl, oder?

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Wozu ein Include, wenn doch nur zwei Wörter drinstehen? Das wird doch kein PHP-Code sein, oder?
              Include ist nur dann angemessen, wenn zu interpretierende Teile in der Datei enthalten sind.
              Sonst sollte man immer eine passive Möglichkeit (readfile(), file_get_contents(), ...) benutzen!

              Das mit den zwei Wörtern war das kürzere Beispiel... anscheinend nicht aussagekraeftig genug:

              Angenommen die Datei bla2.php ist die Index Datei eines Forums >_>
              enthaelt aber keinerlei Design Elemente, so das dass Ganze nur nach was aussieht, wenn es in der index.php meiner Webseite eingebunden ist. Dan wäre diese Methode doch durchaus zu rechtfertigen oder?

              Mhm.. dabei wollte ich net soviel tippen =/

              DU hast Dich doch darüber beschwert, dass die Seiten auch direkt verlinkt würden.

              Hab ich nicht! >_>
              Da musst du dich wohl verlesen haben.
              Ich sagte lediglich, das der Benutzer die Seiten theoretisch auch direkt aufrufen könnte. Das möchte ich verhindern.. Für Begründung siehe bitte oben genante Variante.

              Eine vernünftige Lösung reicht doch wohl, oder?

              Joa eigentlich schon, aber als Anfaenger ist man immer so neugierig. ;)

              1. Hello,

                Eine vernünftige Lösung reicht doch wohl, oder?
                Joa eigentlich schon, aber als Anfaenger ist man immer so neugierig. ;)

                Das ist ja auch gut so. Man sollte aber (gerade was include betrifft) nicht alle Ideen tatsächlich öffentlich zugänglich machen. Denn in include stecken ungeahnte Gefahren.

                Ich weiß auch nicht, woher diese "Includomanie" stammt.
                Ich meine hier diejenige, die einen Teil aus der Seite rausschneidet, um ihn dann mittels Parameter in der URL wieder einzubinden.

                Warum macht das keiner umgekehrt? Die eingebundenen Inhalte sind doch meistens der individuelle Teil. Solange der nicht aus einer Datenbank stammt, sondern eher in einer Datei steckt, könnte man doch eher die übrigen Teile in diese individuelle Seite einbinden, die dann ganz normal über einen Link aufrufbar wäre und nun ihrerseits

                • header
                • menu
                • footer

                einbindet? Die müssten dafür auch nicht über die URL mitgeteilt werden.

                Es gibt tatsächlich eine ganze Reihe anderer Möglichkeiten, Contentelemente zusammenzuführen, die weniger gefährlich sind.

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                  • header
                  • menu
                  • footer

                  Ist meiner Meinung nach auch die beste Methode, da sich vieles auch so ohne Weiteres nicht variabel includen lässt, beispielsweise ein Forum. ;)

                  In meinem Fall habe ich zuerst ein Konzept vorgelegt bekommen, wonach diese Variante eher unvorteilhaft ist. Mitlerweile hat sich dieses geaendert, doch wäre es jetzt im nachhinein vom Layout her ein zu großer Aufwand die Seite in Haeder und Footer zu teilen.

                  Also versuche ich mich grad so damit herumzuschlagen.

                  Ich bin Webdesigner, da reicht es in der Regel eine funktionierende Variante zu beherschen. =)

                  Zur Zeit stoße ich hier aber auf Neugebiet, aus dem Grund auch die vielen dummen Fragen. =)

                  1. Moin,

                    • header
                    • menu
                    • footer

                    Ist meiner Meinung nach auch die beste Methode, da sich vieles auch so ohne Weiteres nicht variabel includen lässt, beispielsweise ein Forum. ;)

                    Ich denke es läßt sich ohne weiteres alles andere viel leichter includen.
                    Mal abgesehen, das dass was Du hier gezeigt hast lediglich Feherlhafter Quellcode war.

                    In meinem Fall habe ich zuerst ein Konzept vorgelegt bekommen, wonach diese Variante eher unvorteilhaft ist. Mitlerweile hat sich dieses geaendert, doch wäre es jetzt im nachhinein vom Layout her ein zu großer Aufwand die Seite in Haeder und Footer zu teilen.

                    Ich bin Webdesigner, da reicht es in der Regel eine funktionierende Variante zu beherschen. =)

                    Wenn Du Designer sein willst, dann bleibt mir Dir zu empfehlen, Schuster bleib bei Deinen Leisten.
                    Von Design magst Du etwas verstehen, von Programmierung nicht, jedenfalls hast Du hier noch nichts gezeigt.
                    Bist Du Dir im Klaren was Du Deinem Kunden zumutest?
                    Wenn das mal ins Auge geht, dann zahlst Du Schadensersatz.
                    Der Hinweis ist durchaus Ernst gemeint.
                    Schalte zunächst mal all Deine Error_reports an, und beseitige alle Fehler und Notice die Dir angezeigt werden.
                    Wenn Du das erledigt hast, dann hast Du sehr viel gelernt und hast auch gehörig an Deinem Stil gearbeitet.
                    Lies auch mal https://forum.selfhtml.org/?t=97369&m=592600

                    TomIRL

                    1. Ich denke es läßt sich ohne weiteres alles andere viel leichter includen.

                      Den Satz vertsehe ich nicht, könntest du dich da etwas genauer ausdruecken?

                      Mal abgesehen, das dass was Du hier gezeigt hast lediglich Feherlhafter Quellcode war.

                      Wäre mir neu, das ich hier irgendwo Quellcode gepostet habe...

                      Von Design magst Du etwas verstehen, von Programmierung nicht, jedenfalls hast Du hier noch nichts gezeigt.

                      Eben, in wie fern kannst du den meine Programmierfaehigkeiten beurteilen, wenn ich hier noch nichts gezeigt habe?

                      Bist Du Dir im Klaren was Du Deinem Kunden zumutest?

                      Sehr wohl. Evtl wendest du dich da aber mal lieber an die FU Medien- und Internetmanagement Berlin, da unterrichten die nähmlich so n mist =)

                      Wenn das mal ins Auge geht, dann zahlst Du Schadensersatz.

                      Herje, da fang ich lieber gleich mal an zu spaaren. =/

                      Schalte zunächst mal all Deine Error_reports an, und beseitige alle Fehler und Notice die Dir angezeigt werden.

                      also bitte...

                      Wenn Du das erledigt hast, dann hast Du sehr viel gelernt und hast auch gehörig an Deinem Stil gearbeitet.
                      Lies auch mal https://forum.selfhtml.org/?t=97369&m=592600

                      Und weiter?

                      1. Moin,

                        Ich denke es läßt sich ohne weiteres alles andere viel leichter includen.

                        Wäre mir neu, das ich hier irgendwo Quellcode gepostet habe...

                        Was soll das sein?

                        <?php
                        if ($seite==bla)
                        {include("./bla.php");}
                        elseif ($seite==bla2)

                        usw...

                        else {include("./bla.php");}
                        ?>

                        <a href="./index.php?seite=bla">Link1/a>

                        Im übrigen, wenn Du alles besser weißt, warum fragst Du überhaupt?

                        TomIRL

                        1. Moin, moin

                          Was soll das sein?

                          <?php
                          if ($seite==bla)
                          {include("./bla.php");}
                          elseif ($seite==bla2)
                          usw...
                          else {include("./bla.php");}
                          ?>
                          <a href="./index.php?seite=bla">Link1/a>

                          Lediglich ein vereinfachtes Beispiel eines Including-Systems. Kein Quellcode. Im übrigen, falls du dir die Mühe gemacht hast diesen Code zu testen, so wird der Fehler den du bekommst, hoechstwahrscheinlich an der "usw..." Zeile liegen...

                          Im übrigen, wenn Du alles besser weißt, warum fragst Du überhaupt?

                          Du hast mich durchschaut, in wirklichkeit verschwende ich meine Montag Abende am liebsten damit, sachen zu fragen, über die ich ohnehin schon besser bescheid weiß.

                          TomIRL

                          mfg
                          moe123

                      2. Hi,

                        Sehr wohl. Evtl wendest du dich da aber mal lieber an die FU Medien- und Internetmanagement Berlin, da unterrichten die nähmlich so n mist

                        "Medien- und Internetmanagement" klingt wie Design (Medien) mit einen Hauch von '<p><b>text <p>text' (schließ ich jetzt einfach mal aus dem Wörtchen 'management')

                        E7

                        PS: Wer nämlich mit h schreibt […] ;)

  2. Hi,

    Gibt es eine Möglichkeit das zu verhindern?

    Du könntest z.B. das betreffende Verzeichnis schützen (Passwortabfrage via .htaccess) oder die Dateien außerhalb des DOCUMENT_ROOT anlegen.

    In beiden Fällen kann PHP trotzdem drauf zugreifen.

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!