Damian: CSS online editieren

Hi,

ich hab mir so ein kleines CMS geschrieben. Jetzt möchte ich die CSS-Styles online editieren. Das müsste ich ja mit php machen. Das Problem ist jetzt, dass ich die Datei dann style.php nennen müsste und dann funktioniert das CSS nicht mehr...

kann jemand helfen?

mfg

  1. Moin!

    ich hab mir so ein kleines CMS geschrieben. Jetzt möchte ich die CSS-Styles online editieren. Das müsste ich ja mit php machen.

    Nö, sowas geht mit jeder gängigen CGI-Anwendung, PHP, ASP, Perl, Python, Bash, …

    Das Problem ist jetzt, dass ich die Datei dann style.php nennen müsste und dann funktioniert das CSS nicht mehr...

    Wieso das? Du kannst doch CSS-Dateien editieren, den Inhalt in einer Datenbank speichern, …. Damit dann dein style.php CSS ausgibt, reicht

      
    header('Content-type: text/css');  
    
    

    kann jemand helfen?

    Hoffe ich.

    Gruß, Robert

    1. Tja, so einfach gehts :-)

      Danke vielmals, hast mir sehr geholfen!

      1. Moin!

        Tja, so einfach gehts :-)

        Wer hätte das gedacht.

        Danke vielmals, hast mir sehr geholfen!

        Keine Ursache!

        Den „Trick“ mit dem Content-Type kannst du dir übrigens merken, wenn du irgendwann mal mit PHP nen RSS-Feed (application/rss+xml) füttern willst und auf XHTML (application/xhtml+xml) umsteigst.

        Viele Grüße, Robert

    2. Hallo,

      Wieso das? Du kannst doch CSS-Dateien editieren, den Inhalt in einer Datenbank speichern, …. Damit dann dein style.php CSS ausgibt, reicht

      Ähm kannst du mir verraten warum man den Inhalt in einer Datenbank speichern wollen würde und nicht direkt in der CSS Datei? Man kann doch mit der Serverseitigen Sprache wunderbar die CSS Datei, die ja nichts anderes ist als eine Textdatei, einlesen, in einer Textarea ausgeben und wenn man sie wieder vom User über das Formular zurückbekommt unter dem namen screen.css wieder abspeichern. Was bring einem der große Umweg über die Datenbank?

      Ich sehe nur Nachteile:

      1. Bei jedem Aufruf der CSS Datei muss die Datenbankengine angeworfen werden
          suchen und die Daten ausgeben. Das kostet Zeit
       2. Bei jedem Aufruf der CSS Datei muss die PHP (oder sonstige) Engine
          Angeworfen werden und die Datenbank mit Daten füttern, die ankommenden
          Daten entgegennehmen und mitsammt des headers ausgeben. Das kostet auch
          viel unnötige Zeit.

      Der Server kann das doch viel schneller. Der muss ja auch nur die Statische Datei so ausgeben wie sie da ist.

      Grüße
      Jeena Paradies

      1. Moin!

        Wieso das? Du kannst doch CSS-Dateien editieren, den Inhalt in einer Datenbank speichern, …. Damit dann dein style.php CSS ausgibt, reicht
        Ähm kannst du mir verraten warum man den Inhalt in einer Datenbank speichern wollen würde und nicht direkt in der CSS Datei?

        Ähm, ein wenig quer formuliert, die Idee, die Datei online zu editieren sollte dieser Satz eigentlich auch beinhalten, sorry.

        Es gibt aber einen halbwegs guten Grund, weshalb man den Inhalt der CSS-Datei lieber nicht in einer veränderbaren Datei speichern möchte: Sicherheit. Bei den meisten (allen?) Webhosting-Angeboten hat man als Kunde einen normalen User-Account, während der Webserver dieser Gruppe nicht angehört. Umgekehrt, läuft der Server oft mit den Rechten einer Gruppe www (o.ä.), zu der der Kunde nicht gehört. Wenn ich nun eine Datei per Script online editierbar machen möchte, muss ich diese für alle schreibbar machen. Auch wenn man per FTP nicht in die Verzeichnisse anderer Kunden wechseln kann, habe ich bei solchen Dateien immer ein schlechtes Gewissen.

        Ich sehe nur Nachteile:

        1. Bei jedem Aufruf der CSS Datei muss die Datenbankengine angeworfen werden
              suchen und die Daten ausgeben. Das kostet Zeit

        Oh ja, vor allem bei hoher Serverlast und PHP mit MySQL.

        1. Bei jedem Aufruf der CSS Datei muss die PHP (oder sonstige) Engine
              Angeworfen werden und die Datenbank mit Daten füttern, die ankommenden
              Daten entgegennehmen und mitsammt des headers ausgeben. Das kostet auch
              viel unnötige Zeit.

        Aus diesem Grund werden ja für große Webseiten wie z.B. Zeitungen oder Online-Dienste die Inhalte zwar in einer Datenbank gespeichert, aber daraus regelmäßig statische Inhalte generiert, die der Besucher zu sehen bekommt.

        Grüße, Robert

        1. Hallo,

          Es gibt aber einen halbwegs guten Grund, weshalb man den Inhalt der CSS-Datei lieber nicht in einer veränderbaren Datei speichern möchte: Sicherheit. Bei den meisten (allen?) Webhosting-Angeboten hat man als Kunde einen normalen User-Account, während der Webserver dieser Gruppe nicht angehört. Umgekehrt, läuft der Server oft mit den Rechten einer Gruppe www (o.ä.), zu der der Kunde nicht gehört. Wenn ich nun eine Datei per Script online editierbar machen möchte, muss ich diese für alle schreibbar machen. Auch wenn man per FTP nicht in die Verzeichnisse anderer Kunden wechseln kann, habe ich bei solchen Dateien immer ein schlechtes Gewissen.

          Du meinst, wenn man eine Datei mit chmod 777 für alle schreibbar macht, dann kann ein anderer Kunde, der auf dem gleichen Server ist mit einem Script meine Datei verändern?

          Aus diesem Grund werden ja für große Webseiten wie z.B. Zeitungen oder Online-Dienste die Inhalte zwar in einer Datenbank gespeichert, aber daraus regelmäßig statische Inhalte generiert, die der Besucher zu sehen bekommt.

          Also ich weiß nicht aber ich dachte eigentlich dass Datenbanken für andere Zwecke entwickelt wurden als um einzelne Dateien abzuspeichern, wobei du dabei sicherlich andere Inhalte meinst als CSS Dateien.

          Grüße
          Jeena Paradies

          --
          [remote-signature:http://jeenaparadies.net/test/self/sig.php] | Jlog | Gourmetica Mentiri
          1. Moin!

            […] Bei den meisten (allen?) Webhosting-Angeboten hat man als Kunde einen normalen User-Account, während der Webserver dieser Gruppe nicht angehört. Umgekehrt, läuft der Server oft mit den Rechten einer Gruppe www (o.ä.), zu der der Kunde nicht gehört. Wenn ich nun eine Datei per Script online editierbar machen möchte, muss ich diese für alle schreibbar machen. […]

            Du meinst, wenn man eine Datei mit chmod 777 für alle schreibbar macht, dann kann ein anderer Kunde, der auf dem gleichen Server ist mit einem Script meine Datei verändern?

            Ohne gewisse Beschränkungen des Admin (bei PHP z.B. open_basedir, siehe PHP Safe Mode) kann bei chmod 777 jeder, der Zugriff auf den Server deines Homepage-Providers hat, auch die Datei verändern. chmod 777 heißt ja nichts Anderes als folgendes ls -l Listing:

            -rwxrwxrwx    style.css

            D.h. die Datei style.css ist für alle lesbar (r), schreibbar (w) und ausführbar (x). Normalerweise sollte für unsere style.css sogar chmod 666 (-rw-rw-rw) reichen.

            Aber andererseits ist natürlich die Frage, welcher andere Kunde weiß, dass du einen global veränderbare Datei hast und besitzt die „kriminelle Energie“, diese Datei auch zu manipulieren? Eigentlich kann man dieses Problem nur IMHO sinnvoll in den Griff bekommen, indem der Provider dir einen SSH-Zugriff erlaubt.

            Aus diesem Grund werden ja für große Webseiten wie z.B. Zeitungen oder Online-Dienste die Inhalte zwar in einer Datenbank gespeichert, aber daraus regelmäßig statische Inhalte generiert, die der Besucher zu sehen bekommt.
            Also ich weiß nicht aber ich dachte eigentlich dass Datenbanken für andere Zwecke entwickelt wurden als um einzelne Dateien abzuspeichern, wobei du dabei sicherlich andere Inhalte meinst als CSS Dateien.

            Stimmt, ich bezog mich dabei eher auf komplette Artikel, für die dann der Inhalt, Titel, Datum, Autor(en), … in der Datenbank stehen. Aber selbst Style-Dateien können durchaus berechtigterweise in einer Datenbank stehen, es gibt ja auch Meta-Angaben wie Letztes Änderungsdatum oder Zeichensatz.

            Viele Grüße, Robert