Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-Script mit Mini PHP-CMS ind MySQL importieren

Einklappen

Neue Werbung 2019

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

  • PHP-Script mit Mini PHP-CMS ind MySQL importieren

    Liebes PHP Forum

    Dies ist mein Einstiegspost bei Euch. Ich habe eine Site für einen Kindergarten gemacht und jemand hat dazu ein Mini-CMS gebaut, daß ein Backend besitzt, in dem man Texte und ein bißchen JavaScript einfügen kann. Diese Texte bzw. HTML Bausteine werden dann mittels eines oder mehrerer PHP Scripte in eine MySQL Datenbank eingebettet.

    Damit die Inhalte, wie ein Paragraph zu sehen ist, gibt es in einem <div> eine Anweisung:

    PHP-Code:
    <div id="leftbox">
        <? echo $content; ?>
    </div>
    Über diesen Aufruf wird wohl mittels eines weiteren Scripts der darzustellende Inhalt aus einer MySQL Datenbank ausgelesen und eingebettet. In der Datenbank werden die Inhalte als HTML Snippets direkt hineingeladen.

    Nun wollte ich, um der Spam-Flut einhalt zu gebieten ein Script aus den PHP-Archiven implementieren, daß einen einfachen Turing-Test erfordert.

    Damit ich dieses aber in die Datenbank bekomme, gehe ich dazu über ein eigens zu diesem Zweck "gemachte" admin.php Seite, auf der ich in einer Textbox den Inhalt einpflegen muß.

    Der Inhalt besteht dabei aus gemischten PHP und HTML Teilen (HTML-Form-Tags + PHP-Tags). Genau an dieser Stelle entsteht nun ein "Issue". Die PHP Teile werden verarbeitet und führten zu ungewollter Interpretation des Codes.

    Daher lautet meine anschließende Frage: Wie kann ich vermeiden, daß PHP Script bei der Verarbeitung bzw. Abspeicherung in der Datenbank verarbeitet wird?

    Gibt es in PHP so etwas wie einen PCDATA Bezeichner? Kann man das irgendwie "wrappen"?

    Ich freue mich über konstruktive Anregungen, weil ich leider fast nichts über PHP weiß, da ich aus dem Java Applications Bereich komme und von PHP bisher nur durch ein einfaches Buch erfahren habe, was seit 3 Jahren angestaubt in meinem Regal steht. Ich hoffe das ist nicht wieder eine der Fragen, die das klassische RTFM provoziert...

    Beste Grüße und schönen Abend,
    Semo

  • #2
    Zitat von Semo Beitrag anzeigen
    Nun wollte ich, um der Spam-Flut einhalt zu gebieten ein Script aus den PHP-Archiven implementieren, daß einen einfachen Turing-Test erfordert.

    Damit ich dieses aber in die Datenbank bekomme
    Was willst du in die Datenbank bekommen - das Script?
    Scriptlogik hat nichts in der Datenbank verloren.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Hallo ChrisB

      Warum hat Script-Logik nichts in der Datenbank verloren? Erkläre mir bitte. Wenn das als einfache Character-Data gespeichert würde ohne interpretiert zu werden, hätte ich eine Lösung.

      Wie kann ich die Logik denn in die DB bekommen, damit die bei Bedarf in den DIV geladen wird?

      Gruß,
      Semo

      Kommentar


      • #4
        Zitat von Semo Beitrag anzeigen
        Warum hat Script-Logik nichts in der Datenbank verloren? Erkläre mir bitte.
        Das ist eine generelle Faustregel.

        Ausnahmen sind möglich - sollten aber gut begründet sein.
        Warum glaubst du, das Script müsse in die Datenbank?

        Wenn das als einfache Character-Data gespeichert würde ohne interpretiert zu werden, hätte ich eine Lösung.
        Na ja, dann mach das doch ...
        Bisher hast du noch nicht nachvollziehbar beschrieben, wo du dabei ein Problem hast.

        Wie kann ich die Logik denn in die DB bekommen, damit die bei Bedarf in den DIV geladen wird?
        Hast du dir auch schon die Frage gestellt, wie du diesen Code aus der DB dann ausgeführt bekommst?

        „eval is evil“, den Satz gibt's auch nicht ganz umsonst.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Ich freue mich, daß so ein kundiger Mensch wie Du Dich meiner Problematik angenommen hast...
          Ich kann insoweit den Code in seiner Ausführung zwar überschauen und abschätzen was passiert, aber nicht ab wann der PHP Interpreter den Code zur Ausführung bringt.

          Hoffentlich langweile ich Dich nicht mit Details, aber in Java ist das z.B. so: Es wird ein Datenstrom aus einer Datei oder Datenbank in den Speicher geladen und danach zur Ausführung bzw. Weiterverarbeitung gebracht. Wie macht das PHP? Ist es automatisch dabei ab der ersten Entdeckung eines php-flags das Script zu verarbeiten?

          Ich möchte diese Faustregel natürlich nicht brechen... Du weißt schon... Java-Programmierer sind die dogmatischen Coder der Welt...

          Was kann man tun, damit ich dieses Script nicht in die DB laden muß?

          Die Webseiten werden dynamisch geladen. Somit muß der Code ja irgendwo eingelagert werden... Wie kapsele ich das?

          Viele Grüße,
          Semo

          Kommentar


          • #6
            Zitat von Semo Beitrag anzeigen
            Wie macht das PHP? Ist es automatisch dabei ab der ersten Entdeckung eines php-flags das Script zu verarbeiten?
            In reinem Text - und nur solchen liest du aus der Datenbank - interessiert sich PHP erst mal gar nicht dafür, ob irgendwo <?php vorkommt.

            PHP-Code wird normalerweise in Dateien „gelagert“, und diese Dateien werden dem Interpreter zur Ausführung übergeben - idR. automatisch dadurch, dass sie eine Endung wie .php haben.
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #7
              Lieber ChrisB

              PHP-Code wird normalerweise in Dateien „gelagert“, und diese Dateien werden dem Interpreter zur Ausführung übergeben - idR. automatisch dadurch, dass sie eine Endung wie .php haben.
              Hast Du eine Seite für mich, wo ich das anschaulich sehen kann? Oder kennst Du eine Site, wo man die Kapselung von Code sehen kann? Hoffe ich nerve nicht.

              Sorry... bin etwas kaputt... meine Nichte ist heute Nacht gestorben... Will das kostenlose Projekt der Site für die Vereins-Kita fertigmachen, da der Zivi der das simple CMS geproggt und mich nun trotz Versprechens hängen läßt, gegangen ist und ich nun derjenige bin der alles richten soll. Ich freue mich, wenn Du mir ein paar Fragen erklärst. Das reicht doch schon... Das mach ich schon alleine.

              lieben Dank,
              Sebastian

              Kommentar


              • #8
                Zitat von Semo Beitrag anzeigen
                Hast Du eine Seite für mich, wo ich das anschaulich sehen kann?
                Wo du was anschaulich sehen kannst?

                Oder kennst Du eine Site, wo man die Kapselung von Code sehen kann?
                Definiere „Kapselung von Code“.

                Funktionen oder Objekte eignen sich zur Kapselung von Code (für einen Java-Kenner vermutlich nichts neues).
                Wie man die in PHP notiert und nutzt - siehe Manual.
                [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                Kommentar

                Lädt...
                X