"Doppeltes" Parsen
Samoht
- php
Gudn!
Mir ist vor einiger Zeit mal aufgefallen, dass PHP-Code, den ich mit Hilfe von PHP aus eine MySQL-Datenbank ziehe auch geparst wird. Habe mich damit allerdings nie näher beschäftigt.
Ich spiele gerade mit dem Gedanken, diese Eigenschaft für ein Projekt zu nutzen, bin mir aber nicht sicher, ob das tatsächlich sinnvoll ist.
Was meint Ihr?
Gruß aus Fürth in Mittelfranken,
Samoht
Ich spiele gerade mit dem Gedanken, diese Eigenschaft für ein Projekt zu nutzen, bin mir aber nicht sicher, ob das tatsächlich sinnvoll ist.
Das dürfte ähnlich wie bei Frames sein. Es kommt auf den Anwendungsfall an. Pauschal wüsste ich jetzt keinen Einsatzzweck, der mir sinnvoll erscheint, ausser die einfache Möglichkeit, ohne Schreibrechte auf dem Server dynaisch Dateien anzulegen.
Wenn du meinst, deine Arbeit wird durch soetwas erleichtert und auch bei der Wartung ergeben sich Vorteile, kann so ein Vorgehen durchaus Sinn machen.
Gudn!
Wenn du meinst, deine Arbeit wird durch soetwas erleichtert und auch bei der Wartung ergeben sich Vorteile, kann so ein Vorgehen durchaus Sinn machen.
Danke für die Einschätzung.
Meine Intention war es, sämtlichen Content eines Projektes in eine Datenbank auszulagern. Alle Seiten sollen dynamisch nach vorgegebenen Strukturen mit diesem Content gefüllt werden. Zusätzlich möchte ich allerdings die Möglichkeit haben bei Sonderfällen auch PHP mit zu verarbeiten.
Gruß aus Fürth in Mittelfranken,
Samoht
Meine Intention war es, sämtlichen Content eines Projektes in eine Datenbank auszulagern. Alle Seiten sollen dynamisch nach vorgegebenen Strukturen mit diesem Content gefüllt werden. Zusätzlich möchte ich allerdings die Möglichkeit haben bei Sonderfällen auch PHP mit zu verarbeiten.
Da würde ich dir eher zu einer Template-Engine raten, da Code und Design getrennt sein sollten.
Deine Lösung ist zwar machbar aber ob schön, darüber lässt sich streiten ;)
Gudn!
Da würde ich dir eher zu einer Template-Engine raten, da Code und Design getrennt sein sollten.
Deine Lösung ist zwar machbar aber ob schön, darüber lässt sich streiten ;)
Template sowieso... :)
Hachje, wie erklär ich das am Besten... *g*
Also nehmen wir mal an Design/Layout und Programmcode sind getrennt. Der Content wird _grundsätzlich_ über ein CMS eingepflegt. Bei Standard-Inhalten überhaupt kein Problem und sehr einfach zu pflegen.
Nun möchte ich aber z.B. eine Seite haben, die nicht nur den hinterlegten Inhalt anzeigt, sondern noch schnell eine spezielle Abfrage in der Datenbank ausführt und darstellt.
Um das geht es mir und wie das am sinnvollsten zu realisieren ist _ohne_ dass ich direkt im Code pfuschen muss und Ausnahmen erstellen.
Gruß aus Fürth in Mittelfranken,
Samoht
Um das geht es mir und wie das am sinnvollsten zu realisieren ist _ohne_ dass ich direkt im Code pfuschen muss und Ausnahmen erstellen.
Dann empfehle ich dir die Implementation einer eigenen API, da es ein ziemliches Sicherheitsloch darstellt, wenn jeglicher PHP-Code erlaubt ist.
Bedenke, das grundsätzlich keine Software fehlerfrei ist und du dir schnell Schadcode o.ä. einfangen kannst. Hier hast du sogar mehrere Angriffsziele, Einmal deine Scripte und zusätzlich das Datenbanksystem.
echo $begrüßung;
Mir ist vor einiger Zeit mal aufgefallen, dass PHP-Code, den ich mit Hilfe von PHP aus eine MySQL-Datenbank ziehe auch geparst wird.
- Ist das grundsätzlich so, oder Einstellungssache?
Nein. Das wäre nicht ungefährlich. Was machst du nach dem Auslesen mit dem Ausgelesenen? Für eine Codeausführung von nicht als Datei vorliegenden Daten ist man auf eval() angewiesen.
- Wie sieht es mit der Performance aus? Ist das doppeltes Parsen oder PHP völlig Wurscht?
Etwas auszuführen hat immer eine Laufzeit. Ob die ins Gewicht fällt, kommt darauf an, wie groß sie ist.
Ich spiele gerade mit dem Gedanken, diese Eigenschaft für ein Projekt zu nutzen, bin mir aber nicht sicher, ob das tatsächlich sinnvoll ist.
Bedenke, dass damit grundsätzlich alles ausgeführt werden kann, was in einem Script auch ausgeführt werden könnte. Bedenke weiterhin, ob das von den berechtigen Personen oder auch von unberechtigten ausgenutzt werden wird oder werden kann.
echo "$verabschiedung $name";
Gudn!
Nein. Das wäre nicht ungefährlich. Was machst du nach dem Auslesen mit dem Ausgelesenen? Für eine Codeausführung von nicht als Datei vorliegenden Daten ist man auf eval() angewiesen.
Mhm... Seltsam. Ich habe damals eval() sicherlich nicht eingesetzt. Dachte das ging direkt... Dann werde ich erstmal ein paar Tests machen diesbezüglich bei Gelegenheit.
Bedenke, dass damit grundsätzlich alles ausgeführt werden kann, was in einem Script auch ausgeführt werden könnte. Bedenke weiterhin, ob das von den berechtigen Personen oder auch von unberechtigten ausgenutzt werden wird oder werden kann.
Das ist mir alles klar und wäre auch soweit abgesichert, dass nur ich das darf.
Danke erstmal mit dem Hinweis auf eval(). Mir ist grad nicht ganz klar, was damals genau abgelaufen ist, werde das mal rekonstruieren müssen.
Gruß aus Fürth in Mittelfranken,
Samoht