sebastian1992: Aufbau einer php homepage

Hallo,

ich wollte mich mal erkundigen, wie man eine php Homepage am beste aufbaut.

Was  sollte in externe Dateien, was nicht, Mod-Rewrite ja/nein,

Inhaltsseiten includieren??

Also im Rundum, wie baut ihr ein komplettes Webprojekt in php auf.

Gruß Sebastian

  1. Lieber sebastian1992,

    wenn Du meine Meinung bis ins letzte Detail dazu wissen willst, dann müsstest Du eigentlich den Mechanismus meines CMS studieren... aber ich fasse mich lieber hier kurz.

    Was  sollte in externe Dateien, was nicht, Mod-Rewrite ja/nein,

    Das sind zwei Fragen.
    a) In externe Dateien sollte Code, der bei Bedarf eingebunden wird. Dazu zählen nicht nur PHP-Scripte ("Bibliotheken"), sondern ebenso CSS- und JavaScript-Code.

    b) mod_rewrite ist sehr sinnvoll, wenn Du sowohl für Anwender-Gedächtnisse als auch für Suchmaschinen "sprechende" URLs haben möchtest.

    Inhaltsseiten includieren??

    Definitiv NEIN! "Inhaltsseiten" sind nach Deinem Verständnis genau was? Also in meinem Falle include ich nicht, sondern extrahiere aus dem <head> und <body> meiner "Inhaltsseiten" den relevanten HTML-Code, um ihn über ein zentrales Script in einer frisch generierten HTML-"Datei" auszugeben. Das geschieht über String-Funktionen. Das mit dem includen ist mir zu gefährlich, denn dann würde PHP-Code in der Inhaltsseite (egal wie der da reingekommen ist) ausgeführt werden. Es ist ja wohl klar, dass das aber nicht im Sinne des Erfinders sein kann.

    Also im Rundum, wie baut ihr ein komplettes Webprojekt in php auf.

    Eine zentrale PHP-Datei regelt die komplette HTML-Ausgabe. Alles andere (CSS, JavaScript, Bild- und Multimediadateien) kann ja im Prinzip als statische Ressourcen ausgegeben werden. Daher brauche ich immer eine zentrale index.php, die sich dann den Rest selbst holt. Damit auch jegliche HTML-Ressource garantiert über diese index.php läuft, benutze ich mod_rewrite.

    So mache ich es. Das muss aber nicht unbedingt die sinnvollste Lösung sein.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Definitiv NEIN! "Inhaltsseiten" sind nach Deinem Verständnis genau was? Also in meinem Falle include ich nicht, sondern extrahiere aus dem <head> und <body> meiner "Inhaltsseiten" den relevanten HTML-Code, um ihn über ein zentrales Script in einer frisch generierten HTML-"Datei" auszugeben. Das geschieht über String-Funktionen. Das mit dem includen ist mir zu gefährlich, denn dann würde PHP-Code in der Inhaltsseite (egal wie der da reingekommen ist) ausgeführt werden. Es ist ja wohl klar, dass das aber nicht im Sinne des Erfinders sein kann.

      Diesen part habe ich jetzt nicht ganz vertanden.

      Der Rest klingt schonmal gut.

      @EKKi:
      mir ist natürlich klar, das es nicht den einen Weg gibt, der perfekt ist und an den kein anderer rankommt, jedoch gibt es ja doch so ein paar sinnvolle Wege und andere, die man eher vermeiden sollte.

    2. Hi,

      b) mod_rewrite ist sehr sinnvoll, wenn Du sowohl für Anwender-Gedächtnisse als auch für Suchmaschinen "sprechende" URLs haben möchtest.

      ... und Du zu bequem bist, von vorne herein sprechende URLs zu verwenden.
      Ich sehe keinen zwindenden Grund, den server unnötig zu belasten. Meist wird das gemacht, wenn ein Programmierer lieber mit einfachen Zahlen jongliert und für jede Aktion einen eigenen Parameter übergeben will...

      Eine zentrale PHP-Datei regelt die komplette HTML-Ausgabe. Alles andere (CSS, JavaScript, Bild- und Multimediadateien) kann ja im Prinzip als statische Ressourcen ausgegeben werden. Daher brauche ich immer eine zentrale index.php, die sich dann den Rest selbst holt. Damit auch jegliche HTML-Ressource garantiert über diese index.php läuft, benutze ich mod_rewrite.

      diesen Grund verstehe ich zwar nicht (Du kannst ja auch Fehlerseiten nutzen), aber ich möchte anführen, dass es auch anders herum gar nicht mal so schlecht geht. Man kann die Inhaltsdateien auch - sogar ohne Parameter - verlinken und hierin die statischen Inhalte einlesen und die dynamischen wie z.B. die Navigation inkludieren.

      freundliche Grüße
      Ingo

      1. Lieber Ingo,

        b) mod_rewrite ist sehr sinnvoll, wenn Du [...] "sprechende" URLs haben möchtest.
        ... und Du zu bequem bist, von vorne herein sprechende URLs zu verwenden.

        ich fürchte, da liegt ein kleines Missverständnis vor. Ich benutze "sprechende" URLs, da bei mir die angeforderten Ressourcen tatsächlich namentlich existieren. Wenn Du bei mir "felix-riesterer.de/main/seiten/gb-script.html" aufrufst, dann ist diese Datei tatsächlich physikalisch unter exakt dieser URL auch vorhanden, nur startet bei diesem Aufruf nicht mein zentrales PHP-Script, das diese Datei mit den notwendigen Bestandteilen (Navi, HTTP-Headerdaten etc.) ausliefern sollte. Daher (und nur daher) verwende ich mod_rewrite, da ich ansonsten jede HTML-Datei mit PHP-Bestandteilen "verunreinigen" müsste, und zuallererst natürlich dem Server per .htaccess mitteilen müsste, dass er bitte auch gewöhnliche HTML-Dokumente mit dem PHP-Parser durchkämmen soll.

        Von daher ist mir das mod_rewrite lieb und teuer geworden...

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hi,

          ich fürchte, da liegt ein kleines Missverständnis vor.

          vermutlich nicht - ich wollte nur eine weitere Möglichkeit aufzeigen.

          Daher (und nur daher) verwende ich mod_rewrite, da ich ansonsten jede HTML-Datei mit PHP-Bestandteilen "verunreinigen" müsste, und zuallererst natürlich dem Server per .htaccess mitteilen müsste, dass er bitte auch gewöhnliche HTML-Dokumente mit dem PHP-Parser durchkämmen soll.

          Nein - Du verwendest einfach ein anderes Prinzip, dass genauso gut funktiert. Allerdings frage ich mich, wozu Du mod_rewrite dann überhaupt benötigst. NUr um aus ?x=y y zu extrahieren bzw, /y/ als URL zu generieren?

          freundliche Grüße
          Ingo

          1. Lieber Ingo,

            Allerdings frage ich mich, wozu Du mod_rewrite dann überhaupt benötigst. NUr um aus ?x=y y zu extrahieren bzw, /y/ als URL zu generieren?

            nein. Ich benutze mod_rewrite, um aus "example.org/site/file.html" das zu erzeugen: "example.org/index.php?pfad=/site/file.html". Oder wie sonst kann ich ein PHP-Script _jedesmal_ starten, wenn lediglich eine physikalisch vorhandene HTML-Datei angefordert wird?

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. Hi,

              nein. Ich benutze mod_rewrite, um aus "example.org/site/file.html" das zu erzeugen: "example.org/index.php?pfad=/site/file.html". Oder wie sonst kann ich ein PHP-Script _jedesmal_ starten, wenn lediglich eine physikalisch vorhandene HTML-Datei angefordert wird?

              die Frage ist doch, warum Du unbedingt auf file.html verlinken willst und nicht z.B. example.org/?file oder von mir aus example.org/?site_file nimmst? "site" und "file" natürlich mit sprechenden Namen.

              freundliche Grüße
              Ingo

              1. [latex]Mae  govannen![/latex]

                die Frage ist doch, warum Du unbedingt auf file.html verlinken willst und nicht z.B. example.org/?file oder von mir aus example.org/?site_file nimmst?

                • sieht hässlich aus
                • Z.B. wenn man
                     - bei einer Änderung der internen Logik der php-datei oder
                     - bei Einbinden ehemals statischer Inhalte (oder
                     - $weitere_moegliche_gruende)
                    nicht alle seiteninternen Querverweise ändern möchte.

                Was ist eigentlich an einem simplen mod_rewrite - Einzeiler so schlimm, daß man ihn so unbedingt vermeiden möchte?

                Cü,

                Kai

                --
                YouTube Video-Tipp: Harmonic Curves
                YouTube Video-Tipp: Pipe Dreams
                selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
                1. Lieber Kai345,

                  Was ist eigentlich an einem simplen mod_rewrite - Einzeiler so schlimm, daß man ihn so unbedingt vermeiden möchte?

                  diese Frage drängt sich mir allerdings auch immer mehr auf, je weiter ich Ingos Antworten lese...

                  Liebe Grüße aus Ellwangen,

                  Felix Riesterer.

                  --
                  ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                2. Hi,

                  die Frage ist doch, warum Du unbedingt auf file.html verlinken willst und nicht z.B. example.org/?file oder von mir aus example.org/?site_file nimmst?

                  • sieht hässlich aus

                  das ist Geschmacksache. Abgesehen davon finde ich das durchaus sinnvoll, denn es sagt dem Besucher: fordere von der Domain example.org die Resource site_file über eine zentrale Steuerung an und gaukelt keine nicht vorhandene Verzeichnisstruktur und Dateien vor.

                  • Z.B. wenn man
                       - bei einer Änderung der internen Logik der php-datei oder

                  wo siehst Du da ein Problem?

                  - bei Einbinden ehemals statischer Inhalte

                  In diesem Fall würden auch simple Redirects ausreichen.

                  Was ist eigentlich an einem simplen mod_rewrite - Einzeiler so schlimm, daß man ihn so unbedingt vermeiden möchte?

                  Z.B. dass mod_rewrite nicht auf jedem Webspace zur Verfügung steht.
                  Oder doppelter evtl. Content wie z.B. http://www.felix-riesterer.de/ und http://www.felix-riesterer.de/main/
                  Aber Gegenfrage: was ist daran so schlimm, darauf zu verzichten und dem PHP-Script direkt die sinnvollen URLs beizubringen?

                  Ich setze mod_rewrite auch ein - dort wo es möglich und sinnvoll ist bzw. es keine Alternativen dazu gibt.

                  freundliche Grüße
                  Ingo

                  1. Mahlzeit.

                    Gut gesättigt unternehme ich einen weiteren Versuch der Diskussionsteilnahme  ;-)

                    example.org/?file

                    • sieht hässlich aus
                      das ist Geschmacksache.

                    Nicht nur... Wenn ich z.B. Abends mit meiner Freundin telefoniere, ist die verbale Durchgabe von
                    "example.org/tollesding" bequemer und weniger fehleranfällig als "example.org/?tollesding"

                    Abgesehen davon finde ich das durchaus sinnvoll, denn es sagt dem Besucher: fordere von der Domain example.org die Resource site_file über eine zentrale Steuerung an und gaukelt keine nicht vorhandene Verzeichnisstruktur und Dateien vor.

                    Welchem Prozentsatz Deiner Besucher ist der Unterschied klar? Warum sollte den Besucher das überhaupt interessieren?

                    Aber Gegenfrage: was ist daran so schlimm, darauf zu verzichten und dem PHP-Script direkt die sinnvollen URLs beizubringen?

                    Zum Beispiel:
                    Wenn Du Deinen Besuchern ein konsistentes Prinzip anbieten willst, lauten alle weiteren Links der Seite dann ja wohl "?tollesding2, ?tollesding3 usw...", richtig?
                    Somit erzeugst Du Overhead, da Du dann _immer_ den PHP Interpreter bemühst. Das wird auf dem Server mehr Last erzeugen, als dem Apache schon per mod_rewrite vorab mitzuteilen, welche Requests diesen überhaupt benötigen.
                    Die per mod_rewrite hinterlegte Regel "/news.html -> /meintollesnewsscript.php" allerdings sorgt dafür, dass PHP nur in dem hier nötigen Fall verwendet wird.

                    Grüße

                    1. Hi,

                      Wenn ich z.B. Abends mit meiner Freundin telefoniere, ist die verbale Durchgabe von
                      "example.org/tollesding" bequemer und weniger fehleranfällig als "example.org/?tollesding"

                      Fast hätte ich Eein Punkt für Dich" geantwortet, aber "example punkt org Fragezeichen tollesding" funktioniert auch, wie z.B. bei:
                      "http://em.td-duesseldorf-rot-weiss.de?Ergebnisse"
                      Demgegenüber kann "example punkt org Schrägstrich (der über der 7) tollesding" sogar komplizierter sein. ;-)

                      Abgesehen davon finde ich das durchaus sinnvoll, denn es sagt dem Besucher: fordere von der Domain example.org die Resource site_file über eine zentrale Steuerung an und gaukelt keine nicht vorhandene Verzeichnisstruktur und Dateien vor.
                      Welchem Prozentsatz Deiner Besucher ist der Unterschied klar? Warum sollte den Besucher das überhaupt interessieren?

                      Vermutlich werden es nicht viele sein, aber dennoch: warum verschleiern?

                      Aber Gegenfrage: was ist daran so schlimm, darauf zu verzichten und dem PHP-Script direkt die sinnvollen URLs beizubringen?
                      Zum Beispiel:
                      Wenn Du Deinen Besuchern ein konsistentes Prinzip anbieten willst, lauten alle weiteren Links der Seite dann ja wohl "?tollesding2, ?tollesding3 usw...", richtig?

                      Nunja, Konkret zur o.g. Adresse eher ?Zeitplan oder ?Karten - und das finde ich sinnvoll.

                      Somit erzeugst Du Overhead, da Du dann _immer_ den PHP Interpreter bemühst. Das wird auf dem Server mehr Last erzeugen, als dem Apache schon per mod_rewrite vorab mitzuteilen, welche Requests diesen überhaupt benötigen.

                      Nö, wie kommst Du darauf? Das PHP-Script (des obigen Beispiels) verwaltet alle Linkparameter in einem Array, welches ohnehin zur Generierung der (hier sogar zweisprachigen) Navigation und der Titel nötig ist.

                      freundliche Grüße
                      Ingo

                      1. Moinmoin.

                        Nö, wie kommst Du darauf? Das PHP-Script (des obigen Beispiels) verwaltet alle Linkparameter in einem Array, welches ohnehin zur Generierung der (hier sogar zweisprachigen) Navigation und der Titel nötig ist.

                        Also findet für sämtliche Links auf der Seite ein Aufruf Deines PHP Scriptes statt. Das ist generell "teurer", als den Webserver statische Dateien ausliefern zu lassen.

                        Hierzu zitiere ich Dich mal aus einem vorigen Post:

                        Ich sehe keinen zwindenden Grund, den server unnötig zu belasten.

                        Das genannte Beispiel widerspricht dieser sehr vernünftigen Ansicht. Ich unterstelle einmal, dass z.B. die Seiten
                        http://em.td-duesseldorf-rot-weiss.de/?Anfahrt
                        http://em.td-duesseldorf-rot-weiss.de/?Kontakt
                        nur selten geändert werden, der Webserver muss Sie so aber trotzdem dynamisch erzeugen, bevor er Sie an den Client ausliefern kann.

                        Eine Seite, die womöglich häufigeren Änderungen unterworfen ist und damit ein Kandidat für eine dynamische Erzeugung wäre:
                        http://em.td-duesseldorf-rot-weiss.de/?Formationen

                        Folgendes würde den Server entlasten:
                        http://em.td-duesseldorf-rot-weiss.de/Anfahrt.html
                        http://em.td-duesseldorf-rot-weiss.de/Kontakt.html
                        werden als statische Dateien erzeugt und als solche vom Webserver ausgeliefert. Keine PHP Overhead mehr.

                        http://em.td-duesseldorf-rot-weiss.de/Formationen.html
                        führt (z.B. per mod_rewrite) das Script aus, um eine "frische" Ausgabe zu erzeugen.

                        Grüße

                        PS:
                        Wie willst Du bei dem verwendeten Konzept einem englischen Besucher eine englische "404" präsentieren?
                        http://em.td-duesseldorf-rot-weiss.de/?misstyped
                        ;-)

                        1. Hi,

                          Also findet für sämtliche Links auf der Seite ein Aufruf Deines PHP Scriptes statt. Das ist generell "teurer", als den Webserver statische Dateien ausliefern zu lassen.

                          Ja. Das stimmt zwar, aber wenn ich statische Seiten ausliefern will, dann brauche ich ja auch kein mod_rewrite - und darum geht es ja hier auch.

                          Das genannte Beispiel widerspricht dieser sehr vernünftigen Ansicht. Ich unterstelle einmal, dass z.B. die Seiten
                          http://em.td-duesseldorf-rot-weiss.de/?Anfahrt
                          http://em.td-duesseldorf-rot-weiss.de/?Kontakt
                          nur selten geändert werden, der Webserver muss Sie so aber trotzdem dynamisch erzeugen, bevor er Sie an den Client ausliefern kann.

                          Ja, ich weiß, das ist ein wenig Luxus und hatte den Grund, dem Webmaster des Mitveranstalters Änderungen bei der Entwicklung leichter zu machen, da er so nur die eigentlichen Inhalte bearbeiten musste.

                          Folgendes würde den Server entlasten:
                          http://em.td-duesseldorf-rot-weiss.de/Anfahrt.html
                          http://em.td-duesseldorf-rot-weiss.de/Kontakt.html
                          werden als statische Dateien erzeugt und als solche vom Webserver ausgeliefert. Keine PHP Overhead mehr.

                          stimmt. Und um daraus "schönere" URLs zu machen wie
                          http://em.td-duesseldorf-rot-weiss.de/Kontakt/
                          bräuchte ich den Server auch nicht mit mod_rewrite zu belasten, sondern könnte einfach ein solches Verzeichnis mit index-Datei anlegen...

                          PS:
                          Wie willst Du bei dem verwendeten Konzept einem englischen Besucher eine englische "404" präsentieren?
                          http://em.td-duesseldorf-rot-weiss.de/?misstyped
                          ;-)

                          hmm... gar nicht. Ich könnte allenfalls Accept-Language auswerten oder die Meldung einfach zweisprachig ausgeben. Aber ich rechnete ja auch eigentlich nicht mit Fehlern. ;-)

                          freundliche Grüße
                          Ingo

                          1. Hallo.

                            Also findet für sämtliche Links auf der Seite ein Aufruf Deines PHP Scriptes statt. Das ist generell "teurer", als den Webserver statische Dateien ausliefern zu lassen.
                            Ja. Das stimmt zwar, aber wenn ich statische Seiten ausliefern will, dann brauche ich ja auch kein mod_rewrite - und darum geht es ja hier auch.

                            Auch, aber nicht nur.

                            stimmt. Und um daraus "schönere" URLs zu machen wie
                            http://em.td-duesseldorf-rot-weiss.de/Kontakt/
                            bräuchte ich den Server auch nicht mit mod_rewrite zu belasten, sondern könnte einfach ein solches Verzeichnis mit index-Datei anlegen...

                            Was sagt dem Nutzer der Schrägstrich? Dem unerfahrenen Nutzer sagt er gar nichts, dem erfahrenen sagt er: "Das hier ist ein Verzeichnis, aber ätsch, ich lasse dich nicht hinein sehen, sondern zeige dir irgendetwas anderes an." Wenn ich den letzten Schrägstrich aber sinnvollerweise weglassen möchte, ist das schon sehr viel schwieriger respektive für den Server mit mehr Aufwand verbunden.

                            Aber ich rechnete ja auch eigentlich nicht mit Fehlern. ;-)

                            Diese Denkweise ist verbreitet.
                            MfG, at

                  2. Mahlzeit Ingo Turski,

                    • sieht hässlich aus
                      das ist Geschmacksache. Abgesehen davon finde ich das durchaus sinnvoll, denn es sagt dem Besucher: fordere von der Domain example.org die Resource site_file über eine zentrale Steuerung an und gaukelt keine nicht vorhandene Verzeichnisstruktur und Dateien vor.

                    Wenn ich Felix richtig verstanden habe, wird da nix vorgegaukelt: die Datei existiert tatsächlich real auf dem Server und wird auch angezeigt. Die PHP-Datei dient lediglich als "Wrapper", die Navigation drumherum baut, Links anpasst oder weiß der Geier was tut.

                    MfG,
                    EKKi

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

                      Wenn ich Felix richtig verstanden habe

                      Du hast mich absolut richtig verstanden.

                      Liebe Grüße aus Ellwangen,

                      Felix Riesterer.

                      --
                      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                    2. Hi,

                      Wenn ich Felix richtig verstanden habe, wird da nix vorgegaukelt: die Datei existiert tatsächlich real auf dem Server und wird auch angezeigt. Die PHP-Datei dient lediglich als "Wrapper", die Navigation drumherum baut, Links anpasst oder weiß der Geier was tut.

                      ... und damit letztlich etwas anderes ausliefert, als die angegebene Resource bei Direktaufruf.

                      freundliche Grüße
                      Ingo

                      1. Lieber Ingo,

                        Wenn ich Felix richtig verstanden habe, wird da nix vorgegaukelt: die Datei existiert tatsächlich real auf dem Server und wird auch angezeigt. Die PHP-Datei dient lediglich als "Wrapper", die Navigation drumherum baut, Links anpasst oder weiß der Geier was tut.
                        ... und damit letztlich etwas anderes ausliefert, als die angegebene Resource bei Direktaufruf.

                        nein, dieser Aufruf _ist_ der "Direktaufruf", denn die physikalisch vorhandene HTML-Datei bekommst Du niemals so, wie sie auf dem Server vorliegt, sondern immer durch das PHP-Script "gefiltert". Sie ist (wenn sich die Navi ändert) ebenso Veränderungen unterworfen, wie eine dynamische Seite (z-B- Gästebuch) und wird über das PHP-Script auch mit dem passenden HTTP-Header für last-modified (basierend auf der neuesten Version der Navi) ausgegeben.

                        Dass das so ist darfst Du gerne live testen:

                        http://www.peutinger-gymnasium.de/html/was/unterricht/faecher/musik/summer_nights/index.html
                        http://www.peutinger-gymnasium.de/html/index.php?seitenpfad=/html/was/unterricht/faecher/musik/summer_nights/index.html

                        Liebe Grüße aus Ellwangen,

                        Felix Riesterer.

                        --
                        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                        1. Hi,

                          dieser Aufruf _ist_ der "Direktaufruf", denn die physikalisch vorhandene HTML-Datei bekommst Du niemals so, wie sie auf dem Server vorliegt, sondern immer durch das PHP-Script "gefiltert".

                          und (wieso) ist dies dann keine Verschleierung?

                          http://www.peutinger-gymnasium.de/html/was/unterricht/faecher/musik/summer_nights/index.html
                          Apropos sinnvolle bzw. schöne URL: hat "html" oder "index.html" hier eine relevante Aussage?
                          Übrigens wird http://www.peutinger-gymnasium.de/html/images/gruppenfoto.jpg nicht gefunden,
                          http://www.peutinger-gymnasium.de/html/images/ liefert die seltsame Meldung "Das System konnte folgende angeforderte Seite bzw. Datei nicht finden: {url}" mit Statuscode 200 aus,
                          und http://www.peutinger-gymnasium.de/html/ denselben Inhalt wie http://www.peutinger-gymnasium.de/

                          http://www.peutinger-gymnasium.de/html/index.php?seitenpfad=/html/was/unterricht/faecher/musik/summer_nights/index.html

                          keine gute Idee in Hinblick auf Suchmaschinen, diese URL hier zu verlinken, die doppelten Content ausliefert - übrigens genauso wie http://www.peutinger-gymnasium.de/html/index.php?seitenpfad=../html/was/unterricht/faecher/musik/summer_nights/ oder http://www.peutinger-gymnasium.de/html/index.php?seitenpfad=was/unterricht/faecher/musik/summer_nights/

                          freundliche Grüße
                          Ingo

                          1. Hallo.

                            dieser Aufruf _ist_ der "Direktaufruf", denn die physikalisch vorhandene HTML-Datei bekommst Du niemals so, wie sie auf dem Server vorliegt, sondern immer durch das PHP-Script "gefiltert".
                            und (wieso) ist dies dann keine Verschleierung?

                            Weil freundlicherweise die angeforderte Ressource ausgegeben wird. Die Alternative wäre eine Fehlermeldung.
                            MfG, at

      2. Nabend!

        ... und Du zu bequem bist, von vorne herein sprechende URLs zu verwenden.
        Ich sehe keinen zwindenden Grund, den server unnötig zu belasten. Meist wird das gemacht, wenn ein Programmierer lieber mit einfachen Zahlen jongliert und für jede Aktion einen eigenen Parameter übergeben will...

        Man stelle sich folgende, imaginäre, Shop Url vor:
        http://example.org/produkte.php?sprache=de&produktId=45

        Folgendes ist doch fraglos besser, oder?
        http://example.org/de/shop/produkte/45/

        Frage:
        Wie realisiert Du das ohne mod_rewrite?
        Jeden Ordner physikalisch anlegen und ne index.php reinklatschen?
        Das selbe Spielchen nochmal, sobald der Shop auch in Spanisch und Italienisch laufen soll?

        Grüße

        1. Hello,

          Man stelle sich folgende, imaginäre, Shop Url vor:
          http://example.org/produkte.php?sprache=de&produktId=45

          Folgendes ist doch fraglos besser, oder?
          http://example.org/de/shop/produkte/45/

          Frage:
          Wie realisiert Du das ohne mod_rewrite?

          Das geht bei einem Apachen auch locker über $_SERVER['PATH_INFO']

          http://example.org/shop/de/produkte/45/

          dann müsste

          http://example.org/shop

          die Ressource sein, die angesprochen wird und alles, was hinten dranhängt, ist eine zusätzliche Pfad-Information.

          Liebe Grüße aus Syburg bei Dortmund

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Heyho.

            dann müsste
               http://example.org/shop
            die Ressource sein, die angesprochen wird und alles, was hinten dranhängt, ist eine zusätzliche Pfad-Information.

            Okay, dann tauschen wir mal "shop" und "de":
            http://example.org/de/shop/produkte/45/

            Sollte man dann /de als Ressource einrichten?

            Okay, konsequent wäre es dann wohl direkt alles über / laufen zu lassen... ;-)

            Wirklich schön wäre die hiermit indexbasierende Variablenübergabe innerhalb des PHP Codes wohl auch nicht, oder?

            Grüße

            1. Hello,

              Okay, dann tauschen wir mal "shop" und "de":
              http://example.org/de/shop/produkte/45/

              Ja nee, is schon klar...

              Das habe ich getan, um klar zu machen, wie es auch semantisch sinnvoll wäre...
              Dass es da immer Besserwisser gibt, die alles wieder zurückschrauben, war zu erwarten.

              Liebe Grüße aus Syburg bei Dortmund

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
              1. Moinmoin.

                Dass es da immer Besserwisser gibt, die alles wieder zurückschrauben, war zu erwarten.

                Mein Anliegen war es eigentlich, Ingo Turski den "...Meist wird das gemacht, wenn ein Programmierer lieber mit einfachen Zahlen jongliert..." Zahn zu ziehen und auf die strukturellen Vorteile von mod_rewrite zu verweisen.

                Aber ok. Er hat ja auch eine "bessere" Lösung gefunden und Du gehst nicht auf eine fachlichen Diskusssion Deines Vorschlags ein?!

                Ich bin dann mal raus....

                Verwirrte Grüße

        2. Hi,

          Man stelle sich folgende, imaginäre, Shop Url vor:
          http://example.org/produkte.php?sprache=de&produktId=45

          Folgendes ist doch fraglos besser, oder?
          http://example.org/de/shop/produkte/45/

          und folgendes schöner:
          http://example.org/shop/?Name_des_Produkts
          ganz ohne mod_rewrite.

          freundliche Grüße
          Ingo

          1. Hallo.

            http://example.org/de/shop/produkte/45/
            und folgendes schöner:
            http://example.org/shop/?Name_des_Produkts

            • Das Fragezeichen stört.
            • Die Ausgabesprache wird verschleiert.
            • Ein Zusammenhang von Produkten und Kategorien wird verschleiert und eine Auflistung aller Artiekl der zugehörigen Kategorie erschwert oder verunmöglicht.
              MfG, at
    3. Hallo Felix,

      Inhaltsseiten includieren??
      Definitiv NEIN!

      warum nicht?

      "Inhaltsseiten" sind nach Deinem Verständnis genau was?

      Nach meinem Verständnis sind es die Rümpfe (die "Content-Bereiche") der anzuzeigenden Seiten.

      Das mit dem includen ist mir zu gefährlich, denn dann würde PHP-Code in der Inhaltsseite (egal wie der da reingekommen ist) ausgeführt werden.

      Genau das ist ja auch der Sinn der Sache. Denke daran: Es ging dem OP hier nicht darum, ein CMS zu erstellen, dass der spätere Anwender dann mit weiteren Inhalten füllen soll. Sondern eine in sich geschlossene Website, die er nur selbst erstellt und bearbeitet.

      Eine zentrale PHP-Datei regelt die komplette HTML-Ausgabe. Alles andere (CSS, JavaScript, Bild- und Multimediadateien) kann ja im Prinzip als statische Ressourcen ausgegeben werden. Daher brauche ich immer eine zentrale index.php, die sich dann den Rest selbst holt.

      Eben - und dann kann sie sich ja auch die Nutzinhalte der einzelnen Seiten als include holen, möglichst aus einem Verzeichnis, das nicht per HTTP zugänglich ist.

      So long,
       Martin

      --
      TEAM: Toll, Ein Anderer Macht's.
  2. Mahlzeit sebastian1992,

    ich wollte mich mal erkundigen, wie man eine php Homepage am beste aufbaut.

    Am besten richtig.

    Was  sollte in externe Dateien, was nicht, Mod-Rewrite ja/nein,

    In externe Dateien kommt bei mir das, was dort hineingehört: z.B. Konfigurationsdaten, die nicht in der Datenbank stehen sollen/dürfen/können; z.B. Bibliotheken bzw. Funktionssammlungen. ModRewrite nutze ich, wenn es nötig oder sinnvoll ist.

    Inhaltsseiten includieren??

    Das kommt darauf an.

    Also im Rundum, wie baut ihr ein komplettes Webprojekt in php auf.

    Je nach Bedarf. Wer behauptet, es gäbe DIE Standardlösung, lügt.

    MfG,
    EKKi

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

    ich wollte mich mal erkundigen, wie man eine php Homepage am beste aufbaut.

    am besten so, dass man die erschaffenen Module später auch weiterverwenden kann.
    Dazu gehört als erstes die Überlegung, ob die Seite später mal durch Andere mit Content gefüllt werden soll, oder immer selber gefüttert wird.

    Das mMn beste System ist, mit einer statischen HTML-Seite mit dazugehörigem CSS für das reine Design zu beginnen. In dieser Seite setzt man an allen relevanten Stellen Platzhalter ein, die von einem dahinterliegenden PHP-Script dann gegen ihren jeweiligen Inhalt ersetzt werden.

    Dadurch können Anwender später eigene Seiten mit eigenen Designs einbringen, ohne aber aktive Inhalte einschleppen zu können.

    <!--{H-keywords}-->
    <!--{H-description}-->
    <!--{F-filedate(-10)}-->">

    <div id="div1">
        <!--{ M-mainmenu ( $pageno )}-->
      </div>

    <div id="div2">
        <!--{ M-secondMenu (1,2,3,impressum) }-->
      </div>

    So als Beispiel, wie ein solcher Platzhalter aussehen kann.

    Hier im Forumsarchiv 2005 befindet sich auch irgendwo eine Funktion, mit der man diese Platzhalter in einem solchen template finden kann und sie auch in ihre Bestandteile zerlegen kann.

    gedacht was das so:

    Ersetzung von

    - T Texten aus der Content-Datei

    - Z Zentrale Texte aus .ht_commom_content im Verzeichnis.ht_include

    rekursive Auflösung von

    - S Subtemplate aus demselben Verzeichnis, wie das Template

    - M Common Subtemplate (z.B. Menu) aus dem Verzeichnis .ht_common_templates

    #     wird rekursiv aufgelöst

    - F Funktionen, definiert in functions.inc.php und freigegeben in config.inc.php

    - H Headerdaten

    - L Linktexte

    - N NULL, Nicht weiter auflösbar mit diesem System, _kann_ daher im Betreibsmodus

    auch entfernt werden, bevor die Seite ausgeliefert wird,
                im Debug-Modus ist er Indikator für Fehler

    Ein solcher Platzhalter wird ersetzt durch einen statischen Ausdruck, durch eine Funktion, die dann selber wieder HTML-Text inclusive Platzhaltern liefern kann, usw.

    Das Spiel läuft solange, bis kein auflösbarer Platzhalter mehr vorhanden ist.
    Funktionen müssen vom Supervisor bereitgestellt werden...

    Das Ganze ist 2004/2005 entstanden ohne Kenntnis von .NET
    Wie ich die letzten Tage feststellen konnte, hat es aber gewisse Ähnlichkeit *gg*

    Leider ist die funktionstüchtige Vorführversion damals (2005) aus der Agentur mitsamt der PCs und den Datensicherungen geklaut worden. Die Diebe sind tatsächlich dreimal hintereinander eingestigen trotz Gittern und Alarmanlage! Die Bengels haben die Geräte zerschlachtet und in Einzelteilen verkauft (sie wurden dann später erwischt) und wissen gar nicht, was sie da zerstört haben.

    Bisher habe ich keine Zeit gehabt und keinen Antrieb verspürt, das aus den Einzelteilen, die ich noch separat gesichert hatte, nochmal wieder zusammenzubauen. Vielleicht magst Du ja Dein Glück versuchen und dich einarbeiten. Mein Tipp: beschäftige Dich vorher mit der Technik noch M$-ASP.NET. Dann brauchst Du das Rad vielleicht nicht vollständig neu zu erfinden sonder kannst Dich auf das Portieren und Debkfehler-Beseitigen reduzieren. Du dürftest ungefähr 300 Mannjahre dafür benötigen.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      ich wollte mich mal erkundigen, wie man eine php Homepage am beste aufbaut.

      am besten so, dass man die erschaffenen Module später auch weiterverwenden kann.
      Dazu gehört als erstes die Überlegung, ob die Seite später mal durch Andere mit Content gefüllt werden soll, oder immer selber gefüttert wird.

      Das mMn beste System ist, mit einer statischen HTML-Seite mit dazugehörigem CSS für das reine Design zu beginnen. In dieser Seite setzt man an allen relevanten Stellen Platzhalter ein, die von einem dahinterliegenden PHP-Script dann gegen ihren jeweiligen Inhalt ersetzt werden.

      Dadurch können Anwender später eigene Seiten mit eigenen Designs einbringen, ohne aber aktive Inhalte einschleppen zu können.

      <!--{H-keywords}-->
      <!--{H-description}-->
      <!--{F-filedate(-10)}-->">

      <div id="div1">
          <!--{ M-mainmenu ( $pageno )}-->
        </div>

      <div id="div2">
          <!--{ M-secondMenu (1,2,3,impressum) }-->
        </div>

      So als Beispiel, wie ein solcher Platzhalter aussehen kann.

      Hier im Forumsarchiv 2005 befindet sich auch irgendwo eine Funktion, mit der man diese Platzhalter in einem solchen template finden kann und sie auch in ihre Bestandteile zerlegen kann.

      gedacht was das so:

      Ersetzung von

      - T Texten aus der Content-Datei

      - Z Zentrale Texte aus .ht_commom_content im Verzeichnis.ht_include

      rekursive Auflösung von

      - S Subtemplate aus demselben Verzeichnis, wie das Template

      - M Common Subtemplate (z.B. Menu) aus dem Verzeichnis .ht_common_templates

      #     wird rekursiv aufgelöst

      - F Funktionen, definiert in functions.inc.php und freigegeben in config.inc.php

      - H Headerdaten

      - L Linktexte

      - N NULL, Nicht weiter auflösbar mit diesem System, _kann_ daher im Betreibsmodus

      auch entfernt werden, bevor die Seite ausgeliefert wird,
                  im Debug-Modus ist er Indikator für Fehler

      Ein solcher Platzhalter wird ersetzt durch einen statischen Ausdruck, durch eine Funktion, die dann selber wieder HTML-Text inclusive Platzhaltern liefern kann, usw.

      Das Spiel läuft solange, bis kein auflösbarer Platzhalter mehr vorhanden ist.
      Funktionen müssen vom Supervisor bereitgestellt werden...

      Das Ganze ist 2004/2005 entstanden ohne Kenntnis von .NET
      Wie ich die letzten Tage feststellen konnte, hat es aber gewisse Ähnlichkeit *gg*

      Leider ist die funktionstüchtige Vorführversion damals (2005) aus der Agentur mitsamt der PCs und den Datensicherungen geklaut worden. Die Diebe sind tatsächlich dreimal hintereinander eingestigen trotz Gittern und Alarmanlage! Die Bengels haben die Geräte zerschlachtet und in Einzelteilen verkauft (sie wurden dann später erwischt) und wissen gar nicht, was sie da zerstört haben.

      Bisher habe ich keine Zeit gehabt und keinen Antrieb verspürt, das aus den Einzelteilen, die ich noch separat gesichert hatte, nochmal wieder zusammenzubauen. Vielleicht magst Du ja Dein Glück versuchen und dich einarbeiten. Mein Tipp: beschäftige Dich vorher mit der Technik noch M$-ASP.NET. Dann brauchst Du das Rad vielleicht nicht vollständig neu zu erfinden sonder kannst Dich auf das Portieren und Debkfehler-Beseitigen reduzieren. Du dürftest ungefähr 300 Mannjahre dafür benötigen.

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      Danke, hat bestimmt ein wenig gedauert, aber bringt mich bestimmt weiter.

      1. Lieber sebastian1992,

        bitte zitiere in sinnvollen Ausschnitten und vermeide Fullquotes. Danke.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. Hallo.

      Mein Tipp: beschäftige Dich vorher mit der Technik noch M$-ASP.NET. Dann brauchst Du das Rad vielleicht nicht vollständig neu zu erfinden sonder kannst Dich auf das Portieren und Debkfehler-Beseitigen reduzieren.

      Mein Tipp: Nimm eine einfache Template-Sprache mit weiter Verbreitung, beispielsweise Smarty.
      MfG, at