Fehler in php-code legt komplette seite lahm, nicht nur die 'betroffene' View
am 13.03.2009 - 13:53 Uhr in
Hallo,
ich hatte gestern folgendes Problem :
In den Kopfbereich einer View hatte ich mittels php-filter einen php-Code gepackt, der anscheinend einen Fehler enthielt.
Passiert ist dann dass ich eine Fehlermeldung bekam das es einen Problem mit eval gab.
Ich hätte mich nun nicht weiter gewundert wenn dieser Fehler NUR auf der jeweiligen View passiert wäre, für die der php-code angelegt wurde. Abgeschossen wurde aber mal gleich die ganze Webseite, selbst die Startseite gab diese Fehlermeldung aus.
Ich habe das Problem gelöst bekommen, in dem ich - nach langem rumprobieren - den php-filter in der Datenbank herrausgenommen, dann die View gelöscht und den Filter wieder rein gemacht hab.. dann hieß es die View wieder anlegen. Das alles wegen eines Tipp-Fehlers.. übel übel.
Was mich nun aber immer noch wundert ist, dass dabei:
a) die ganze Webseite 'kaputt' ging (sprich ich nicht über den Admin in der Lage war den php-code wieder zu entfernen)
b) Das ich auch über die Datenbank anscheinend keine Möglichkeit habe den kaputten php-code zu entfernen (oder hab ich das nur nirgends gefunden)
Da ich - aus Entwicklersicht - der Meinung bin dass doch php-code der vom User/Admin (o.ä.) eingegeben wurde, nur dann ausgeführt werden sollte,wenn er auch wirklich benötigt wird, stell ich das hier mal zur Diskussion, und wenn nur dabei herauskommt, das mir jemand erklären kann, was ich übersehen habe, die dieses Verhalten sinnvoll machen (was ich mit wegen a) aber eigentlich nicht vorstellen kann) ;)
Gruß
Methos
- Anmelden oder Registrieren um Kommentare zu schreiben
Re: Fehler in php-code legt komplette seite lahm, nicht nur ...
am 14.03.2009 - 12:47 Uhr
Abgeschossen wurde aber mal gleich die ganze Webseite, selbst die Startseite gab diese Fehlermeldung aus.
Hat der View einen Block bereitgestellt? Mein
Fatal error: Call to undefined function
wird wirklich nur auf der für den View vorgesehenen Seite ausgelöst.... den php-filter in der Datenbank herrausgenommen, ...
Ungefähr so:
DELETE FROM filters WHERE module = 'php'
? Du brauchst natürlich nicht das komplette Eingabeformat löschen (DELETE FROM filter_formats WHERE cache = 0
).... dann die View gelöscht ...
Wenn du den Filter richtig gelöscht hast, dann solltest du auch wieder Zugriff auf deine Site haben und hättest den View einfach bearbeiten können.
b) Das ich auch über die Datenbank anscheinend keine Möglichkeit habe den kaputten php-code zu entfernen (oder hab ich das nur nirgends gefunden)
Das Views-Modul scheint seine Konfiguration komprimiert in BLOBs zu speichern. Sehr merkwürdig. Die meisten anderen Module, die unterschiedliche Eingabeformate unterstützen, speichern das Eingabeformat in einer gesonderten Spalte (meistens
format
genannt), so das man das einfach in der Datenbank umstellen kann.--