Hallo zusammen, ich habe eine webseite auf der man text eingeben kann, dieser text wird dann in einer datenbank gespeichert. Leider werden dabei die umlaute "verzerrt" gespeichert, als Zeichenfolge von 4 oder 5 unsinnigen zeichen. Wie kann man diesen Fehler beheben ?
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Da muss man in Richtung Zeichensatzkodierung schauen (ich denke speziell an Unicode). Solche Fehler passieren wenn ein Unicode in einem nicht Unicode kodiertem Feld gespeichert wird oder ein Export als Unicode ausgebe. Und dann z.B. ASCII basiert verarbeitet wird. Da fehlt entweder beim Speichern in der Datenbank oder nach dem Auslesen zum Weiterverarbeitung eine Umwandlung der Zeichencodierung.
Hallo,
zwei Nachfragen:
1. Hast du die Seite selbst erstellt oder hat die ein "Profi" programmiert?
Denn dann wäre es eine Aufgabe für den "Profi".
2. Verstehe ich das richtig, dass man auf deiner Webseite ein Formular/Kontaktformular als User ausfüllen kann, das dann anschließend gespeichert wird und wieder, bei Bedarf, hervorgeholt wird/werden soll ... natürlch in einer lesbaren Form?
Ich glaube, es hat irgendwas mit UTF-8 zu tun.
Aber ich habe von der Materie wirklich keine Ahnung.
Deswegen bin ich jetzt hier raus und überlasse das Feld denjenigen, die von Webseitenprogrammierung Ahnung haben.
https://www.designerinaction.de/tipps-tricks/web-development/html-umlaute-sonderzeichen/
Ciao
Leider werden dabei die umlaute "verzerrt" gespeichert, als Zeichenfolge von 4 oder 5 unsinnigen zeichen.
Kannst Du mal ein paar Beispiele zeigen?
Hier ein Beispiel:
Das ist eine der HTML Anzeigevarianten, wenn UTF-8 Texte nicht als UTF-8 kodierter Text ausgegeben werden.
Ich bin jetzt nicht der große Web-Entwickler (ich schlage mich mit ERP Software von Infor herum, da liegt auch eine Datenbank zwischen Ein- und Ausgabe. Die Zeichenkodierung ist dort genauso ein Thema).
Ich würde mit diesen Erklärungen anfangen:
Dort wird noch hierhin verlinkt:
https://stackoverflow.com/questions/5733336/utf-8-characters-dont-display-correctly/5733374#5733374
Es geht letztendlich darum, dass die Datenformate in der Datenbank zur Kodierung bei ein und Ausgabe passen müssen.
Danke für das Beispiel.
Schoppes und Andreas42 haben ja schon wichtige Hinweise dazu gegeben.
Für weitere Hilfestellungen wäre es dann sicherlich gut, wenn Du das gesamte Prozedere, um das es geht, etwas besser beschreiben könntest.
webseite auf der man text eingeben kann, dieser text wird dann in einer datenbank gespeichert
ist leider etwas zu allgemein, um als Außenstehender zu erkennen, wo genau das Problem nun auftritt.
Die Seite heisst Bottlemail.de
Und der Fehler passiert dann wenn jemand eine Bottlemail eintippt und diese dann absendet. Die wird dann in der Datenbank gespeichert.
Ich habe jetzt eine Seite gefunden, die das Thema sehr übersichtlich darstellt:
https://html-einfach.de/html-umlaute-richtig-darstellen/
Dort wird auch auf die Formular- und die Datenbank-Problematik eingegangen.
Und der Fehler passiert dann wenn jemand eine Bottlemail eintippt und diese dann absendet. Die wird dann in der Datenbank gespeichert.
Das Speichern in der Datenbank ist doch aber sicher noch nicht das Letzte, was mit dem eingegebenen Text gemacht wird.
Wie geht es denn dann weiter?
Und wo ist das Fehlen echter Umlaute denn dann besonders problematisch?
Man könnte ersatzweise auch ein Script nutzen, das die HTML-Entities wieder in normale Umlaute umwandelt.
Na wie du siehst geht es hier um flaschenpost. Wenn alles passt wird der text, also die flaschenpost als email verschickt
Na dann ersetze doch die Umlaute.
ä=ae, ü=ue, ö=oe, ß=ss
Ist im englischen so üblich und versteht auch jeder, oder?
Warum soll ICH die ersetzen ? Das ganze läuft autark ohne mir ! Warum soll ich jede einzelne bottlemail bearbeiten ? Ist das dein ernst ?
Na ja!
Warum soll ich jede einzelne bottlemail bearbeiten ? Ist das dein ernst ?
Keinem Helfer ist klar, welche Rolle du eigentlich bei bottlemail.de spielst.
Du hast leider meine 1. Frage nicht beantwortet:
1. Hast du die Seite selbst erstellt oder hat die ein "Profi" programmiert? Denn dann wäre es eine Aufgabe für den "Profi".
Oder bist du nur ein Anwender, der solche Emails bekommt?
Auf der Seite heißt es:
"Im Juli 2024 wurde die Flaschenpost Versenderoutine von Justus Pilgrim (Variomedia) radikal überarbeitet, und seitdem arbeitet Bottlemail.de hervorragend, nahezu wartungsfrei und autark."
Falls du nur ein einfacher User bist, dann wäre hier die erste Beschwerdeadresse:
https://bottlemail.de/kontakt.php
Ich bin der besitzer der seite
Ich bin der besitzer der seite
Bist du auch der Programmierer?
Warum weichst du dieser Frage eigentlich aus?
In den Links von mawe2, Andreas42 oder mir findest du genügend Hinweise, wie das Problem zu händeln ist.
edit:
Nebenbei bemerkt:
Das "Impressum" ist ja wohl ein Witz.
https://bottlemail.de/fehler404.php?error=404
Nebenbei bemerkt: Das "Impressum" ist ja wohl ein Witz.
Hast Du eins gefunden?
Hast Du eins gefunden?
Ja, aber nur auf Umwegen:
https://bottlemail.de/datenschutz.php
===> "Link zum Impressum"
Der Justus müsste vielleicht noch den PHP-Fehler beseitigen, der auf der Startseite ganz unten zu sehen ist. Dabei kann er dann auch gleich noch das Umlaut-Problem lösen.
Der justus muss gar nix machen, ich habe euch gefragt was ICH machen soll.
Das ist jetzt aber wirklich schwierig, Dir irgendwie zu helfen!
Nun hast Du ja den Thread schon als "beantwortet" gekennzeichnet. Das Problem ist für Dich also offensichtlich gelöst.
Es wäre nett, wenn Du die Lösung für alle Mitleser hier nochmal kurz darstellen würdest.
Es ist nicht gelöst, ich habe nur keine nerven mehr wenn hier sachen bemängelt werden bzw wenn sich einer über sachen lustig macht die gar nix mit meiner frage zu tun haben.
Es ist nicht gelöst, ich habe nur keine nerven mehr wenn hier sachen bemängelt werden bzw wenn sich einer über sachen lustig macht die gar nix mit meiner frage zu tun haben.
Es macht sich doch niemand lustig!
Nach der Impressumsthematik hattest Du zwar nicht gefragt, den Hinweis von schoppes solltest Du aber trotzdem ernst nehmen, denn ein fehlendes Impressum kann zu juristischen Problemen führen, die Du sicher nicht unbedingt haben willst.
(Auch andere Sachverhalte auf Deiner WebSite bedürfen einer juristischen Unterstützung. Aber da Du danach nicht gefragt hast, soll das jetzt auch nicht thematisiert werden. Schließlich ist das hier auch kein juristisches Forum.)
Problematisch für die Hilfestellung ist lediglich, dass man jedes wichtige Detail immer erst scheibchenweise und immer erst nach weiterer Nachfrage von Dir geliefert bekommt.
Übrigens: Die Fehlermeldung beim (fehlenden) Impressum ist identisch mit der Fehlermeldung auf der Startseite. Es handelt sich in beiden Fällen um diese Meldung:
Fatal error: Cannot redeclare phpmail() (previously declared in /homepages/u24445/phpmail.php:12) in /homepages/u24445/phpmail.php on line 81
Aus dieser Meldung kann man mindestens mal entnehmen, dass hier PHP zur Anwendung kommt.
Das wäre z.B. ein Fakt gewesen, den Du am besten schon im Startposting erwähnt hättest.
Da es sich hier offensichtlich um einen Fehler in der Datei phpmail.php handelt, deutet vieles darauf hin, dass PHP durchaus auch für das Umlautproblem in den E-Mails relevant sein könnte.
Und wenn der Herr Justus Pilgrim das gesamte E-Mail-Handling auf PHP-Basis aktuell bearbeitet hat, ist das durchaus ein Fall, bei dem man ihn zu Rate ziehen sollte.
Ich bin jetzt leider kein PHP-Experte, kann Dir aber zumindest sagen, dass Du wahrscheinlich PHP-Kenntnisse brauchen wirst, wenn Du hier selber eingreifen willst.
Evtl. müsstest Du dann auch den fraglichen PHP-Code hier posten, damit ein evtl. hier mitlesender PHP-Experte Dir Tipps geben kann.
btw: Um welches Datenbanksystem handelt es sich denn eigentlich?
Herr pilgrim hat mir lediglich bei der versenderoutine geholfen. Das war alles. Er hat nichts mit der seite zu tun. Könnt ihr mal aufhören ständig herr pilgrim zu erwähnen ?
Welches datenbanksystem ? Wo sieht man denn welches das ist ?
Welches datenbanksystem ? Wo sieht man denn welches das ist ?
Mit welchem Tool schaust Du Dir denn die Daten in den Datenbanktabellen an?
Evtl. kannst Du auch in dem Verwaltungstool Deines Web-Hosters erfahren, was da für eine Datenbank läuft.
Aber irgendwie macht mich das Ganze dann doch sprachlos:
Du bist Besitzer einer jahrelang genutzten Online-Anwendung und kennst diese absolut notwendigen Basisinformationen nicht?
Hast Du die WebSite von jemandem geerbt, der verstorben ist und der Dir nichts mehr dazu sagen kann?
Ja der programmierer ist tot
OK.
Das ist ein besonderer Umstand, der natürlich eine außergewöhnliche Herausforderung darstellt.
Allerdings befürchte ich, dass es mit der schriftlichen Unterstützung hier im Forum nur schwer möglich sein wird, das Problem zu lösen.
Konntest Du denn schon zum Datenbanksystem etwas in Erfahrung bringen?
Oft basieren solche Lösungen auf MariaDB. Da die Scriptsprache offensichtlich PHP ist, könnte man die gesamte WebSite für die lokale Entwicklungsarbeit auf einem sog. "XAMPP" laufen lassen.
https://de.wikipedia.org/wiki/XAMPP
Denkbar sind aber auch diverse andere Datenbanksysteme / Datenbankserver.
Wenn Du bisher mit Datenbanksystemen, Scriptsprachen usw. nicht zu tun hattest, wirst Du sehr viel Einarbeitungszeit einplanen müssen.
Evtl. wird Dir ein spezialisierter Dienstleister da schneller weiterhelfen können?
Wenn der bisherige Programmierer Zugangsdaten / Kennwörter etc. verwendet hat, die jetzt niemand kennt, dürfte ein kompletter Neuaufbau / eine Neuprogrammierung der WebSite die schnellste Lösung sein...
Genau so habe ich das gemeint:
den Hinweis von schoppes solltest Du aber trotzdem ernst nehmen, denn ein fehlendes Impressum kann zu juristischen Problemen führen, die Du sicher nicht unbedingt haben willst.
Ich hätte das wohl besser dazu schreiben sollen.
Abmahnungen bei fehlendem Impressum hat es in den letzten Jahren schon mehrfach gegeben (kann wohl bis zu 50000 € kosten).
Das von Dir gezeigte Beispiel mit HTML-Entities ist unabhängig von der eingesetzten Zeichensatzcodierung und erlaubt eine Abbildung von Sonderzeichen selbst mit eingeschränkten Zeichensätzen.
Stehen die Werte denn tatsächlich exakt so wie im Beispiel gezeigt in der Datenbanktabelle, oder erscheinen Sie erst bei Ausgabe? Könnte z.B. passieren wenn doppelt encodiert wird.
Ja, sie stehen exakt so in der datenbanktabelle
so in der datenbanktabelle
Hast Du mal geschaut, welcher Zeichensatz - fachsprachlich Code - in der bottle-dingsda verwendet wird - und vor allem welcher in der sogenannten Datenbank?
In letzterer ist es jedenfalls einer, bei dem es keine Umlaute wie ä und ü... gibt - oder nicht der gleiche wie bei der Flasche.
Mach Dich kundig zu den eingesetzten Codes.
Den Quellcode der Seite anschauen!
Ich habe vor langer Zeit mit Daten auch aus nicht-deutschen Ländern und Versionen einer web-Seite in verschiedenen Sprachen gearbeitet, die international eingesetzt wurde.
Für die Daten war für mich nichts weiter wichtig als zu bestimmen, welche Codetabellen für die Daten, die ich bearbeiten sollte, verwendet wurden.
Erst dann konnte ich die Daten verwenden und auswerten - natürlich nach dem Umwandeln in den entsprechenden UTF8-Code, der bei meiner Arbeit eingesetzt wurde.
Also die Lösung scheint mir in den Antworten von Andreas oben genannt zu sein.
Müsstest Du Dich mal mit beschäftigen - und gucken, ob und wie die Codes angeglichen werden können.
HTH,
Anne
In letzterer ist es jedenfalls einer, bei dem es keine Umlaute wie ä und ü... gibt - oder nicht der gleiche wie bei der Flasche.
Woher willst Du das wissen?
Auch wenn die Datenbank mit UTF-8 arbeitet, kann irgendein Script dort solche HTML-Entities reinschreiben.
Nachsatz: Das ist nicht so ganz einfach mit dem Code - die web-Seite und Datenbank muss nicht im gleichen Code geschrieben sein wie die Daten dargestellt werden.
Der Verweis auf die Antworten von Andreas42 oben sind der Schlüssel zur Lösung.
Anne