Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   php code in mysql datenbank (https://www.delphipraxis.net/132305-php-code-mysql-datenbank.html)

Delphi-Phil 9. Apr 2009 13:30


php code in mysql datenbank
 
Hallo Zusammen,

folgendes Szenario:

Ich habe eine MySql Datenbank mit einer Tabelle diese hat 3 Spalten id, content1, content2.

Id ist die Datensatz ID, Content1 beinhaltet HTML Code und Content2 beinhaltet PHP code der im header einer HTMl Seite ausgeführt werden soll. Den HTML Code kann ich "ganz normal" mit einem echo ausgeben und er wird richtig interpretiert.

Wie kann ich den PHP Code aus der Datenbank ausgeben, dass er auch als PHP Code ausgeführt wird und nicht im Browser wenn man sich den Quelltext einer Seite anguckt einfach als ganz normaler Text zusehen ist????


Frohe Ostern

Mithrandir 9. Apr 2009 13:35

Re: php code in mysql datenbank
 
Gegenfrage: Warum muss der PHP Code in der DB sein?

Ansonsten: Wie machst du es denn bisher? Wenn man kein "Echo" nutzt, sollte es doch eigentlich gehen, oder?

quendolineDD 9. Apr 2009 13:49

Re: php code in mysql datenbank
 
Wenn der Code aus der DB geholt wird und ausgegeben wird, läuft dieser trotzdem nicht durch den Compiler sondern wird als String erkannt.
So wie du das jetzt machst wird das nichts.

Delphi-Phil 9. Apr 2009 14:26

Re: php code in mysql datenbank
 
der Code ist in der DB, weil es massig viel Code ist und es sonnst schwer ist diese Anwendung vom Code her zu verwalten...

Mithrandir 9. Apr 2009 14:31

Re: php code in mysql datenbank
 
Zitat:

Zitat von Delphi-Phil
der Code ist in der DB, weil es massig viel Code ist und es sonnst schwer ist diese Anwendung vom Code her zu verwalten...

Möööp!

Auch PHP kann verschiedene Dateien inkludieren. Es sollte ein leichtes sein, "massig viel" Code übersichtlich zu schreiben... ;)

user0815 9. Apr 2009 14:32

Re: php code in mysql datenbank
 
Dein Freund dürfte eval heissen.

TurboMartin 9. Apr 2009 15:01

Re: php code in mysql datenbank
 
Zitat:

Zitat von user0815
Dein Freund dürfte eval heissen.

eval is evil! :twisted:

Delphi-Phil 9. Apr 2009 15:04

Re: php code in mysql datenbank
 
Zitat:

Zitat von TurboMartin
Zitat:

Zitat von user0815
Dein Freund dürfte eval heissen.

eval is evil! :twisted:

wieso???

Matze 9. Apr 2009 15:08

Re: php code in mysql datenbank
 
Ich würde es auch in Dateien verwalten. In der Datenbank hat PHP-Code, der ausgeführt werden soll, meiner Meinung nach nichts verloren. Außerdem kostet das Performance, da du den Code vermutlich aus der DB holen, temporär speichern und dann einbinden musst.

Teile es strukturiert in Dateien/Verzeichnisse auf und binde das dann ordentlich ein. Dann bleibt's übersichtlich. Und auf die Weise kannst du jede Projekte realisieren. Ein "zu groß" gibt's da nicht.

Grüße

TurboMartin 9. Apr 2009 15:08

Re: php code in mysql datenbank
 
Zitat:

Zitat von Delphi-Phil
Zitat:

Zitat von TurboMartin
Zitat:

Zitat von user0815
Dein Freund dürfte eval heissen.

eval is evil! :twisted:

wieso???

Weil es ein Sicherheitsrisiko darstellt in deinem Code.

alcaeus 14. Apr 2009 21:24

Re: php code in mysql datenbank
 
Pauschale Aussagen sind einfach *beeeep*. eval ist per se nichts schlimmes - es gibt einige Situationen, in denen eval durchaus benoetigt wird.
Auch PHP-Code in die Datenbank zu knallen ist nichts negatives, ich denke da an Drupal, bei welchem viel Code fuer die einzelnen Seiten in der Datenbank als Node gespeichert wird.

So oder so kann man weder das eine, noch das andere pauschal als "schlimm", "schlecht", "evil" oder "unsauber" abstempeln. Nachdem das gesagt ist, zurueck zum Thema.

@Delphi-Phil:
Wenn du es wegen der Code-Organisation tun willst, dann ueberleg dir das nochmal gewaltig. So wie das aussieht hast du in der DB Eintraege mit verschiedenen IDs, die abhaengig von der eingegebenen URL abgerufen werden sollen. Was spricht dagegen, diesen Code in PHP-Dateien zu schreiben und mittels include() einzubinden und so auszufuehren? Der Code ist dadurch viel wartbarer, da du ihn nicht in der DB bearbeiten musst, ausserdem gilt das File-System normalerweise als "sicherer" Ablageplatz fuer Code, waehrend die Datenbank teilweise sehr einfach manipuliert werden kann.

@Turbo-Martin: eine Aufgabe zum Nachdenken: beschreibe den Unterschied zwischen
Code:
include('file.php');
und
Code:
eval(file_get_contents('file.php'));
Alternative zwei: schreibe folgenden Code so um, dass er ohne Verwendung von eval() funktioniert:
Code:
for ($i = '...', $eval = 'edolpmi', $j = 0, $k = array();array_unshift($k, substr($i = str_replace(substr($i, $j), base64_decode(substr($i, $j)), $i), $j++, 1)) < strlen($i); $eval = strrev($eval));eval($eval($k));
Sorry dass es etwas schwer lesbar ist, aber das war grad das einzige Beispiel das ich gefunden hab. Ich habs eh schon wieder halbwegs lesbar gemacht - den Text, der in $i geschrieben wird, ist aber rausgekuerzt. Ich denke das Beispiel sollte zeigen, dass es durchaus Gelegenheiten gibt, in welchen man sich auf eval() verlassen muss ;)

Greetz
alcaeus

Delphi-Phil 17. Apr 2009 13:19

Re: php code in mysql datenbank
 
ich habe mich nun für die include variante entscheieden!

Gibt es systeme, mit den ich den Quellcode besser verwalten kann??

Jetzt liegt einfach alles in einem ordnerbaum!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz