Stefan: Eine Änderung auf einer Seite mit Auswirkung auf alle anderen Seiten.......(schw

Hallo

Ich hab etwas gegen Frames und deshalb hab ich meine Seite ohne Frames gestaltet. Auf jeder Seite wird z.B. die gleiche Navigationsleiste mit den selben Links, etc. geladen. Ich hab jetzt schon ca. 18 Seiten und es wächst ständig an. Wenn ich jetzt eine Änderung an einem Objekt mache, das auf allen Seiten vorkommt, z.B. einen Link, etc., dann muss ich jede Seite öffnen, ändern und wieder abspeichern.....
Gibt es eine Möglichkeit, Änderungen auf alle Seiten auswirken zu lassen ohne jede Seite einzeln zu verändern? Ich hab gehört, das soll mit PHP möglich sein, aber irgendwie hab ich dort den Einstieg nicht gefunden.

Gruss

Stefan

  1. hi!

    Gibt es eine Möglichkeit, Änderungen auf alle Seiten auswirken zu lassen ohne jede Seite einzeln zu
    verändern?

    Ja, mit SSI. SSI steht für "Server Side Includes". Wie der Name schon sagt, werden hier serverseitig Elemente
    in HTML-Seiten eingefügt, zb. andere Dateien (die auf mehreren Seiten gleich sein sollen). Informationen
    zu SSI findest du in SELFHTML: <../../tgbe.htm>

    Ich hab gehört, das soll mit PHP möglich sein, aber irgendwie hab ich dort den Einstieg nicht gefunden.

    Mit PHP3 ist das auch möglich, das ist aber Overkill.

    bye, Frank!

    1. hi!

      Mit PHP3 ist das auch möglich, das ist aber Overkill.

      bye, Frank!

      hm ... "Overkill" ?? Kannst du das noch rasch sagen, wieso ?

      Gruesse

      Christoph S.

      1. hi!

        Mit PHP3 ist das auch möglich, das ist aber Overkill.
        hm ... "Overkill" ?? Kannst du das noch rasch sagen, wieso ?

        PHP3 ist eine komplette Programmiersprache, im Gegensatz zu SSI. Der Parser und Interpreter/Compiler
        ist also bedeutend komplexer als die SSI-Routinen des Webservers, braucht also dementsprechend auch
        länger zum Laden und Ausführen. Bei kleineren Sites mag das egal sein, bei großen mit sehr vielen
        Zugriffen dürfte dadurch evtl. die Performance stärker beeinträchtigt werden als mit SSI.

        Bei Windows kommt übrigens noch hinzu, dass ein komplett eigenes Programm für PHP aufgerufen werden
        muss, bei Unix-Systemen gibt es dafür ein Apache-Modul (wie auch für SSI): keine Ahnung, wie es da mit
        der Performance aussieht, evtl. ist das SSI-Modul des Apache irgendwie besser im Apache verankert.

        bye, Frank!

        1. Tagchen,
          also aufklärungsstunde :)

          Mit PHP3 ist das auch möglich, das ist aber Overkill.
          hm ... "Overkill" ?? Kannst du das noch rasch sagen, wieso ?

          PHP3 ist eine komplette Programmiersprache, im Gegensatz zu SSI.

          -> zum TEIL richtig, PHP ist eine in HTML eingebetette scriptsprache, eine komplette ist es nicht , zumal PHP auf C-Modulen basiert mit denen man PHP selber erweitern kann.

          Der Parser und Interpreter/Compiler

          ist also bedeutend komplexer als die SSI-Routinen des Webservers, braucht also dementsprechend auch
          länger zum Laden und Ausführen.

          -> komplexer vielleicht, länger nein, besonders MS mit Ihrem NT / IIs verschnitt sind da glanzlichter... da macht php sogut wie nix... auserdem kann man php so konfigurieren das es nur bei bestimmten dateinamen arbeitet als auch das es eben nur eine bestimmten kopfbereich einbindet ( Stichwort AUTO_APPEND, AUTO_PREPEND)

          Bei kleineren Sites mag das egal sein, bei großen mit sehr vielen

          Zugriffen dürfte dadurch evtl. die Performance stärker beeinträchtigt werden als mit SSI.

          -> vergiß es.... soviele user bekommst du nicht als das dein webserver untergeht ... wir reden da von einigen tausenden pro Stunde !!

          Bei Windows kommt übrigens noch hinzu, dass ein komplett eigenes Programm für PHP aufgerufen werden
          muss, bei Unix-Systemen gibt es dafür ein Apache-Modul (wie auch für SSI): keine Ahnung, wie es da mit
          der Performance aussieht, evtl. ist das SSI-Modul des Apache irgendwie besser im Apache verankert.

          -> also generell gilt da zu sagen das das betriebsystem relativ egal ist (relativ !!), der verwendete webserver ist es ! nimm APACHE oder omniHTTPd her und es löppt super... nimm IIs und wir schaun mal...

          im allgemeinen sollte man PHP den vorzug geben da damit noch einiges mehr möglich ist (zb.: in MySQL tabelle mit inhalt für bestimmte tage anlegen der dann automatisch reinkommt)... für gemeinsame bereiche reichen SSI oder ein lokales script das die dateien vor dem upload modifiziert.

          grüße

          Korbinian

  2. Hallo Stefan,

    Gibt es eine Möglichkeit, Änderungen auf alle Seiten auswirken zu lassen ohne jede Seite einzeln zu verändern?

    1. So Dein Provider das unterstuetzt, koenntest Du das mit Server Side Includes machen, schau Dir das entsprechende Kapitel im Selfhtml mal an:
    <../../tgbe.htm>
    2. Falls das nicht geht, versuch's mal mit einem Editor, der dateiuebergreifendes Ersetzen beherrscht, z.B. der <werbung> Phase 5 </werbung>
    zu finden unter http://www.meybohm.de/htmledit/index.html

    Gruss

    Thomas

    1. Hallo allerseits!

      <werbung> Phase 5 </werbung>

      Dieser Editor unterstützt noch eine andere (offline-) Technik: per include-Files kann man immer wieder kehrende Elemente (Titel, Menüs...) zentral ablegen und bearbeiten. Das Einfügen dieser Dateien in HTML-Files und das aktualisieren dieser geht dann per Menübefehl.

      Gruß Frank

  3. Hallo Stefan,

    wenn Dein Provider kein SSI unterstützen sollte, dann lagere die Elemente, zB eine Navigation oder einen Newsticker oder was auch immer, jedenfalls die 'änderungsanfälligen' Sachen, die auf jeder seite erscheinen, einfach in eine externe JS-Datei ein.

    In der Seite selbst referenzierst Du diese externe Datei mit

    <script language="JavaScript" src="datei.js" type="text/javascript"></script>

    und zwar an der Stelle, an der letztlich die Inhalte stehen sollen.

    In der JS-Datei selbst lässt Du Deine Inhalte mit dem Syntax document.write() schreiben, also...

    document.write("<a href='datei.htm'>Erster Link</a>");
    document.write("<a href='nochwas.htm'>Zweiter Link</a>");
    usw.

    Viele Grüße
       Alex

  4. Hallo

    Ich hab etwas gegen Frames und deshalb hab ich meine Seite ohne Frames gestaltet. Auf jeder Seite wird z.B. die gleiche Navigationsleiste mit den selben Links, etc. geladen. Ich hab jetzt schon ca. 18 Seiten und es wächst ständig an. Wenn ich jetzt eine Änderung an einem Objekt mache, das auf allen Seiten vorkommt, z.B. einen Link, etc., dann muss ich jede Seite öffnen, ändern und wieder abspeichern.....
    Gibt es eine Möglichkeit, Änderungen auf alle Seiten auswirken zu lassen ohne jede Seite einzeln zu verändern? Ich hab gehört, das soll mit PHP möglich sein, aber irgendwie hab ich dort den Einstieg nicht gefunden.

    Gruss

    Stefan

    Ich (als gelernter Programmierer) habe mir einmal die Mühe gemacht, ein vernünftiges Makefile zu schreiben und jage alle Seiten durch den Präprozessor und durch verschiedene Perl-Scripts durch.
    Der Präprozessor erledigt so Sachen wie das Includieren gemeinsamer Seitenteile, das Ersetzen von Makros..., die Perlscripts ersetzen Umlaute, akzentuierte Zeichen ... durch HTML-Entities, schmeißen Leerzeilen raus...
    Die Seiten auf dem Server sind dann statisch, d.h. für die gemeinsamen Teile der Seiten wird keinerlei SSI oder Script benötigt.
    Das klappt ganz hervorragend (auch bei über 200 Einzelseiten).
    Andreas

    1. Hi Andreas!

      Ich (als gelernter Programmierer) habe mir einmal die Mühe gemacht, ein vernünftiges Makefile zu schreiben und jage alle Seiten durch den Präprozessor und durch verschiedene Perl-Scripts durch.

      Jawoll, so macht man das! Allerdings sind die meisten HTMLler eben keine Programmierer und koennen sich mit solchen Dingen oft nicht so recht anfreunden. Dabei sind sie doch sooo maechtig.

      Der Präprozessor erledigt so Sachen wie das Includieren gemeinsamer Seitenteile, das Ersetzen von Makros..., die Perlscripts ersetzen Umlaute, akzentuierte Zeichen ... durch HTML-Entities, schmeißen Leerzeilen raus...

      ... generieren von TOCs ...

      So long

      1. Hi Andreas!

        [...]

        Der Präprozessor erledigt so Sachen wie das Includieren gemeinsamer Seitenteile, das Ersetzen von Makros..., die Perlscripts ersetzen Umlaute, akzentuierte Zeichen ... durch HTML-Entities, schmeißen Leerzeilen raus...

        ... generieren von TOCs ...

        Sowas war mit den ... hinter "schmeißen Leerzeilen raus" gemeint

        So long

        Even longer!
        Andreas