Umlaute in Dateipfaden werden plötzlich automatisch umgewandelt - Datenbank defekt?
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 11.06.2010 - 22:46 Uhr in
Hunderte und mehr Bildern können plötzlich nicht mehr angezeigt werden, da irgendetwas in allen Dateipfaden sämtliche Umlaute und Sonderzeichen ersetzt, z. Bsp.
ä --> ae
ö --> oe
ß --> ss
usw. Da das vorher nicht so war und die Pfade zu hunderten Dateien in der Datenbanktabelle "files" mit Umlauten und Sonderzeichen im Dateinamen gespeichert wurden, jetzt aber Drupal ohne Umlaute und ohne sonderzeichen nach diesen Dateien sucht, werden hunderte Bilder nicht mehr angezeigt.
Aber wer oder was hat dies verursacht??
Ist die Datenbank defekt?
Welche Datenbankeinstellung, welche Konfiguration oder was sonst verursacht dieses Verhalten?
Spielt man eine Sicherung der DB ein, dann scheint das Problem weg zu sein. Leider fehlen in der Sicherung viele letzte Inhalte.
Wenn man wüsste, welches Modul oder welche Konfiguration das versursacht, könnte man die Konfigration wieder so verändern, dass es wieder funktioniert. Hat jemand eine Idee?
Danke.
- Anmelden oder Registrieren um Kommentare zu schreiben
Dazu müsste man mehr über die
am 12.06.2010 - 09:22 Uhr
Dazu müsste man mehr über die Konfiguration wissen. Also ein paar Gegenfragen:
Wie sind deine Versionen von MySQL, PHP, Drupal?
Welches Modul benutzt du zum Speichern deiner Bilder? Upload (Core) oder Filefield (CCK) oder...?
Sind die Bilder Nodes oder mittels Editor in einen anderen Beitrag geladen?
jetzt aber Drupal ohne Umlaute und ohne sonderzeichen nach diesen Dateien sucht, werden hunderte Bilder nicht mehr angezeigt.
Was meint das genau?
Sucht Drupal wirklich einen anderen Dateinamen oder vielleicht nur einen anderen URL-Alias? Benutzt du Pathauto?
Wie kann eine DB so kaputt werden u. welche DB-Tabelle reaparien
am 12.06.2010 - 10:27 Uhr
Ich konnte es inzwischen lösen in dem ich eine DB-Sicherung eingespielt habe und dann zuletzt erstelle Artikel / Nodes gerettet habe in dem ich von der aktuellen DB einige Tabellen in die rückgesicherte DB kopiert habe (node, node_revisions, node_..., term_data, term_..., url_alias, files, ...).
- Drupal 6.16, mysql 5.0.51, php 5.2.6,
- CCK Filefield wird benutzt, das Problem entstand bei alle Imagecache Pfaden mit Umlauten oder Sonderzeichen (ß), ev. auch direkte Pfade, davon gibt es aber wenige
- Bilder werden auch mittels TinyMCE in den Artikeltext eingebaut, allerdings entstand das Problem bei den Teaser-Thumbnails und bei der Ausgabe der Bilder über die node-xx-tpl.php, ob auch beim TinyMCE weiß nicht nicht
Drupal wollte immer auf Bildpfade der Form
../.../baerentatze.jpg
statt
../../bärentatze.jpg
zugreifen. Da das Bild aber vor Monaten als "bärentatze.jpg" hochgeladen wurde und auch immer alles mit Umlauten funktioniert hat, hat Drupal jetzt bei diesem Problem die Datei nicht gefunden und daher fehlten all dies Bilder mit Umlauten auf der Webseite (obwohl die Bilddateien alle da sind, halt nur mit Umlauten drin statt ohne Umlaute).
Auch beim Hochladen neuer Bilder hat Drupal beim Hochladen die Umlaute entfernt, was vorhier nie der Fall war.
Jetzt nach DB restore geht wieder alles, aber woran könnte das gelegen haben?
Problem wieder aufgetreten
am 12.06.2010 - 11:13 Uhr
So, das Problem ist wieder aufgetreten:
Durch die Aktivierung des Moduls
Mime Mail CSS Compressor
trat das Problem sofort auf, alle Bilder mit Umlauten im Dateinamen werden nicht mehr angezeigt.
Bei der Aktivierung des Moduls "Mime Mail CSS Compressor" kam folgende Meldung:
Existing filenames have not been transliterated
Die Deaktivierung des Moduls bringt keine Lösung, alle Pfade zu Bildern mit Umlauten sind weiterhin defekt!
Eine Weltreise bis zur Behebung des Fehlers im Modul
am 12.06.2010 - 14:23 Uhr
Ein Wahnsinn:
Um das Problem zu lösen musste ich:
- Datenbank rücksichern (da die sehr gross ist, dauert das fast eine Stunde, mehrmaliger Upload nötig, da wegen Timeout nicht die ganze DB importiert wird)
- nach dem Fehler suchen
- Auslöser des Fehlers endlich nach langer Zeit gefunden: Aktivierung des Moduls "Mime Mail CSS Compressor", welches beim Versenden von HTML Newslettern mittels SimpleMail benötigt wird.
- aber wie kann es nun behoben werden?
- beim Aktiveren des Moduls kam der Hinweis auf "Transliteration"
- Modul Transliteration upgedated, nach Fehlerquellen gesucht ("imagecache"), keine Hinweise
- Imagecache upgedatet, kein Erfolg
- da die "Transliteration" irgendwie falsch aktiviert wurde und daher die Filepfade für Bilder mit Umlauten nicht mehr gepasst haben, habe ich nach Möglichkeiten gesucht, die Transliteration abzuschalten.
- Das Modul "Transliteration" wird fix von Imagecache benötigt, lässt sich nicht abschalten
- zufällig auf ein Video Tutorial "Using Images in Nodes" gestossen, wo zu sehen ist, dass man beim ImageField CCK Feld "Transliateration" ein-/auschalten kann. Bei mir gibt es so ein Feld nicht
- Modul Imagefield Path könnte das machen, existiert aber nicht als Modul.
- Modul FileField Path gefunden, welches genau das macht
- Modul FileField Path aktiviert und es zeigt im CCK Imagefield, dass "Transliateration" für den Bildpfad ausgeschaltet ist. Test mit ein-/ausschalten brachten nichts.
- Auf http://groups.drupal.org/node/23699 gestossen, aber auch keine Lösung
- irgendwie bin ich hier gelandet: http://drupal.org/node/574204 und dieser Patch konnte schließlich das Problem lösen: http://drupal.org/files/issues/imagecache.module_no_transliteration_code...
--- imagecache.module (revision 26)
+++ imagecache.module (working copy)
@@ -311,9 +311,6 @@ function imagecache_action_definition($a
*/
function imagecache_create_url($presetname, $filepath, $bypass_browser_cache = FALSE) {
$path = _imagecache_strip_file_directory($filepath);
- if (module_exists('transliteration')) {
- $path = transliteration_get($path);
- }
Imagecache verändert den Pfad zu CCK Imagefield Bildern einfach so, in dem es "Transliteration" anwendet Diese Zeilen gehören raus, weil sie einseitig sind. Wer Transliteration macht, der muss es von Beginn an machen, damit die Bilder schon ohne Umlaute auf dem Server gespeichert werden.
Warum die Atkvierung des Moduls "Mime Mail CSS Compressor" die Transliteration bei diesen CCK Imagefields ausgelöst hat, allerdings nur in Zusammenhang mit Imagecache, ist nicht ganz klar! Vielleicht ist hier noch ein Bug.
Jedenfalls ist das Problem mit obigen Patch gelöst.
Der Weg zur Lösung war eine Weltreise.
Was macht ihr bei Kundenprojekten? Zahlt ein Kunde 5 Stunden, 8 Stunden, manchmal braucht mehr noch mehr Stunden, bis man so einen Fehler behoben hat. Habe bei der Gelegenheit auch einen Fehler in Simplenews behoben, das Modul macht sehr viele Probleme. Welcher Kunde zahlt für diese vielen Stunden, wo man auf Fehlersuche ist und Fehler beheben muss, die man selbst nicht verursacht hat?
Drupal ist trotzdem super
am 12.06.2010 - 14:28 Uhr
- So, jetzt wieder zurück umstellen auf original Datenbank, die ja nun auch wieder funktioniert.
- Weiters: Aufräumen - zusätzlich installierte Module "Filefield Paths" werden nicht benötigt, wieder deinstallieren und löschen
- Mehrere Patches dokumentieren (Dateien wegsichern)
- ein paar gemachte Updates können bleiben, auch wenn es dev-Versionen sind
Viele viele Stunden für einen im Endeffekt kleinen Fehler, der schon seit Monaten bekannt ist, aber vom Modul-Programmierer nicht in die aktuelle Version übernommen wurde, nicht mal in die dev-Version.
Und solche Situationen hat man immer wieder!
Drupal ist trotzdem super.