Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#11

Re: php code in mysql datenbank

  Alt 14. Apr 2009, 22:24
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat