Ankündigung

Einklappen
Keine Ankündigung bisher.

CSS Datei via PHP ändern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSS Datei via PHP ändern

    Zunächst: Ist es überhaupt sinnvoll, eine Datei (direkt) via PHP zu ändern??

    Ich möchte in meinem Forum im Admin Bereich ein kleines Plugin einbauen,welches es ermöglicht (bestimte!) CSS Einträge zu verändern.

    1. Ist das sicher (/ sinnvoll)?
    2. Wie umsetzen? Ich würde auf anhieb sagen mit fileopen, strreplace, etc.. Gibt es da überhaupt eine andere Möglichkeit?

  • #2
    1. Kommt immer auf die Umsetzung an.
    2. Datenbank geht auch.

    Also solche Beiträge sind unter aller Niveau:
    Zitat von Schadstoff
    Sinnvoll??

    Kommentar


    • #3
      Code:
      <form method="post" action="">
      <textarea name="text" rows="30" cols="70">
      {$text}
      </textarea><br />
      <input type="submit" value="Userglow {$_POST['userglow']} verändern">
      </form>
      {$_POST['text']}
      Habe also eine Text Area erstellt, in der die komplette (vorerst) .css Datei ausgegeben wird! Das ganze steht, verbunden mit einem Submit, in einer (POST)Form Klasse.

      Die Ausgabe mit {$_POST['text']} klappt soweit auch, allerdings nicht komplett..!

      Meine _css Datei beginnt so:
      Code:
      {* =================
             CSS Datei
         ================= *}
      
      <style type="text/css">
      <!--
      .basictab ul{
      margin: 4px;
      [...]
      Allerdings gibt er nur bis ...== *} hinter "CSS-DATEI" aus. Ich schätze er zählt das als eine Zeile.. Wie schaffe ich es, die Ausgabe vollständig zu bekommen?
      [edit] ich habe rausgefunden, dass er von <style ..> bis </style> nicht ausgibt. Sprich wenn ich hinter </style> noch etwas schreibe gibt er das wieder mit aus! Wie schaffe ich es also, diesen bereich als Text ausgeben zu lassen??
      lg

      Kommentar


      • #4
        CSS Dateien sind anders aufgebaut, Ausgaben von Quelldateien sollte man zwischen <pre></pre> Tags setzen.
        Cascading Style Sheets – Wikipedia

        Kommentar


        • #5
          Seit wann steht in einer CSS Datei <script> drin? Aber egal... du musst Sonderzeichen vorher umwandeln. [MAN]htmlentities[/MAN]

          Kommentar


          • #6
            Super!
            Nur jetzt hänge ich noch daran, den Text zu speichern.

            <input type="button" onclick="{$this->savecss()}" value="speichern">
            Und mit form onclick etc habe ich es probiert, das hat alles nicht funktioniert. Wie kann ich meinen Text am besten speichern bzw besser gesagt überschreiben?

            Kommentar


            • #7
              Zitat von erc Beitrag anzeigen
              Seit wann steht in einer CSS Datei <script> drin? Aber egal... du musst Sonderzeichen vorher umwandeln. [MAN]htmlentities[/MAN]
              Da musst du was falsch verstanden haben! es geht um <style>

              Kommentar


              • #8
                HTML hat in CSS-Dateien nichts zu suchen.

                Kommentar


                • #9
                  Okay nochmal von vorne, ich glaube ich habe das ganze wohl etwas schlecht erklärt:

                  Ich gebe in einem Template, innerhalb einer Text Area, eine Variable TEXT aus. Diese Variable TEXT wird in der Klasse (die das Template handlet) bestimmt. Und zwar mit dem Inhalt einer Datei("_css.tpl")!

                  PHP-Code:
                  $text2 fopen("../templates/standard/_css.tpl","r+");
                  $text fread($text2,999999);
                  $tpl->vars("text",$text); 
                  Und jetzt möchte ich über mein Template den aktuell(falls der Text halt verändert wurde) in der Text Area stehenden Text in meine "css.tpl" speichern bzw besser gesagt, überschreiben! Das Ganze würde ich mit einer Funktion, in meinem Fall savecss(), umsetzen. Allerdings gelingt es mir nicht, diese Funktion korrekt aufzurufen!
                  Ich habe es mit <form><input onclick sowie mit <form onclick..><input..>probiert. {$this->savecss()} war mein Aufruf für die Funktion!

                  [edit] Ich werde es mit einem submit machen, und sagen {if} isset($_POST['x'] {/if} {$this->savecss($_POST['x'])} {/endif}
                  Ich hoffe jetzt ist klar geworden was ich möchte!

                  Kommentar


                  • #10
                    Du musst doch einfach nur das, was du ueber POST schickst, mit fwrite in die Datei schreiben?
                    also
                    PHP-Code:
                    if($gesendeter_stylesheet != $template_stylesheet && is_writable($filename)){
                      
                    fopen(..);
                      
                    fwrite(..);
                      
                    fclose(..);
                    }
                    else {
                      echo 
                    "Datei ist nicht beschreibar, existiert nicht, oder der inhalt wurde nicht geaender."

                    Kommentar


                    • #11
                      Zitat von Mein Nick Beitrag anzeigen
                      Du musst doch einfach nur das, was du ueber POST schickst, mit fwrite in die Datei schreiben?
                      also
                      PHP-Code:
                      if($gesendeter_stylesheet != $template_stylesheet && is_writable($filename)){
                        
                      fopen(..);
                        
                      fwrite(..);
                        
                      fclose(..);
                      }
                      else {
                        echo 
                      "Datei ist nicht beschreibar, existiert nicht, oder der inhalt wurde nicht geaender."

                      Das Problem ist das ich in einen Template arbeite, und daher das ganze als Funktion verlinken muss

                      Kommentar


                      • #12
                        Hallo,

                        ist doch eigentlich ganz einfach. du öffnest deine CSS Datei in den Textarea Tags, also hier.

                        PHP-Code:
                        echo '<textarea name="" cols="" rows="">';
                                
                        $datei '../css/style.css';
                                
                        $handle fopen($datei,"r+");
                                
                        $read_style fread($handlefilesize($datei));
                                
                        $close fclose($handle);
                                echo 
                        $read_style;
                        echo 
                        '</textarea>'
                        Und mit einen Formular kannst du beim gedrückten Submitbutton das dann so machen.

                        PHP-Code:
                        if(isset($_POST['submit']))
                        {
                           
                        $datei '../css/styles.css';
                           
                        $handle fopen($datei,"r+");
                           
                        $read_style fwrite($handle$_POST['text']);
                           
                        $close fclose($handle);
                           
                           
                        header("Location: ".$path."/admin/deine_datei.php");
                           exit();

                        Und somit änderst du über die Browseroberfläche per Formular deine Style Datei.

                        Kommentar

                        Lädt...
                        X