hilfdirselbst.ch
Facebook Twitter gamper-media
Petra Rudolph p
Beiträge: 1554
29. Nov 2002, 11:44
Beitrag #1 von 8
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


Hallo,

ich wollte mich mal schlau machen, wie ihr das mit den Umlauten handhabt. Konkret geht es mir um eine Forumlareingabe, die in eine mysql-DB geschrieben wird.
Wenn man sich so gar nicht drum kümmert ist die Anzeige von Text "irgendwie richtig".

Ich hab aber das Problem, dass in einem Login-Bereich eine Userin mit einem ö im Namen Probleme hat mit der Anzeige einer Abfrage, während eine weitere mit einem ä sich nicht beklagt.

So ist es also Mist, weil unzuverlässig.

Macht es also Sinn, alle Formularfelder mit htmlspecialchar zu übergeben? Und muß ich dann die vorhandenen DB-Einträge durchforsten?
Oder gibt es noch eine andere Lösung?

Grüßle Petra

PS:
Ich wünsche euch ein schönes, lustiges Forums-WE!!!
(Dieser Beitrag wurde von Petra Rudolph am 29. Nov 2002, 11:48 geändert)
Top
 
X
Miro Dietiker
Beiträge: 699
29. Nov 2002, 14:16
Beitrag #2 von 8
Beitrag ID: #18041
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


Hallo Petra!

Ich schliesse aus Deiner Frage, dass Du nicht mit den Golive-
Erweiterungen arbeitest...

Es ist von äusserster Wichtigkeit, dass in der Datenbank KEINE
HTML-Entities drin sind. Das wäre ein verstoss gegen die
Datenhaltung. Ziel ist es, den Text ohne irgendwelche Konvertierungen
in der Datenbank abzulegen, so dass er in der Grundform drin ist.

Konvertierungen, Auswertungen, usw. werden bei der Ausgabe gemacht!

Stell dir das so vor:

Du produzierst eine Datenbank aufgrund einer HTML-Seite und
konvertierst gleich alles htmlentities beim reinschreiben weil du's
eigentlich nur in html ausgeben willst!
Plötzlich aber kommt Dir die Idee diese Quelle in ein anderes
Programm importieren zu wollen (Bsp. in Word, Excel, über einen ODBC
Treiber) oder du willst ein PHP-Tool schreiben welches einen PDF-
Katalog produziert oder einfach nur ein Textmail schreibt.
Hier wird die html-entities-konvertierung nicht geschätzt!

Das ist dann garnichtmehr lustig denn offiziell gibt es keine
Rückkonvertierungsfunktion und ausserdem ist sie sehr Zeitaufwendig
wenn auch einfach zu implementieren (Ich schreibe sie hier absichtlich
nicht damit niemand auf falsche Gedanken kommt!)

Ich hoffe demnach dass du ohne weiteres Zögern und ohne weitere
Gegenstimmen aus dem Forum den seriösen konsequenten Weg einschlägst.

Pack dir mal den phpMyAdmin und schau ob die zwei Users wirklich
unkonvertiert in der Datenbank stehen. Für Härtefälle muss man da
halt nach den Rückkonvertierungsfunktionen vor dem Ablegen in die
Datenbank greifen ... aber das sollte wirklich nicht sein!

Ist das alles drüben in Deutschland angekommen?

GrEeZ: Miro Dietiker
als Antwort auf: [#18007] Top
 
Miro Dietiker
Beiträge: 699
29. Nov 2002, 14:28
Beitrag #3 von 8
Beitrag ID: #18044
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


PS: Gerade habe ich im Forum noch schnell ein Fehler bei der Ausgabe
und Suche in den Umlauten korrigiert...

Beim Klick auf "Benutzerbeiträge anzeigen" im Profil war bei Personen
mit Sonderzeichen im Namen dass die Suchresultate nicht korrekt waren!

Du siehst .. es ist sehr heikel!

Allerdings lieber mal bei der Ausgabe einen Fehler machen den man
an einem Ort korrigieren kann statt dann die Daten überarbeiten zu
müssen!

GrEeZ: Miro Dietiker
als Antwort auf: [#18007] Top
 
Petra Rudolph p
Beiträge: 1554
29. Nov 2002, 15:19
Beitrag #4 von 8
Beitrag ID: #18052
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


Jau, deine Ausführungen haben den Niederrhein (kurz vor Holland) erreicht ;-) Ist ja auch logisch.
Also ich hab da bislang noch gar nix stehen, d.h. die Daten gehen und stehen mit den Umlauten in der DB.

Ich hab zum einen eine pwtab und eine mit news.
In der pwtab gibts also einen User mit Namen - sagen wir mal - Mönch.
Der kann von den Berechtigungen her alle news editieren.
In der ersten Abfrage werden alle Datensätze angezeigt und er kann sich nun einen aussuchen (hier ist die Darstellung korrekt).
Im zweiten Schritt soll der Datensatz dann in einem Forumlar (value="<?php $wert?>") angezeigt werden.
So und hier passiert nix.

Jetzt änder ich den Namen des Users auf Moench(über phpmyadmin, dann neu einloggen mit ae) und es funktioniert.
Bei einem User mit einem ä im Namen treten diese Probleme nicht auf.

Any idea?

Grüßle Petra

http://www.quicktoweb.de
als Antwort auf: [#18007] Top
 
Miro Dietiker
Beiträge: 699
29. Nov 2002, 16:40
Beitrag #5 von 8
Beitrag ID: #18062
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


Hallo again

Folgendes muss ich dir dazu sagen (und zitiere sogleich)
"... in einem Forumlar (value="<?php $wert?>") angezeit..."
Ich hoffe doch du hast das ECHO oder PRINT nicht vergessen, oder?

Ist mir nämlich auch schon unzählige male passiert!

*smile*

Sonst denke ich hast du dir noch ein anderes Problem geschafft,
das nicht an diesen eben aufgezählten Dingen liegen kann..
Da bräuchten wir dann schon diepaar Zeilen Deines Codes.

Viel Erfolg! Miro Dietiker
als Antwort auf: [#18007] Top
 
oesi50  A  S
Beiträge: 2315
29. Nov 2002, 17:12
Beitrag #6 von 8
Beitrag ID: #18069
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


Hallo Petra,

möglicherweise liegt das bei Dir an den Standardeinstellungen des Datenbankservers, die ist nämlich schwedisch/finnisch.
Dein Problem tritt dann immer im Zusammenhang mit Sortieroperationen (GROUP BY, ORDER BY) und bei der Verwendung von LIKE auf.

Versuche doch mal, die betreffenden Spalten in deiner Tabelle
als BINARY zu definieren, damit werden alle CHARs nicht mehr als Zeichen, sondern als Binärdaten interpretiert.
Oder verbiete einfach alle Umlaute und Ligaturen in Usernamen und Passwörtern.

Gruß Oesi
als Antwort auf: [#18007]
(Dieser Beitrag wurde von oesi50 am 29. Nov 2002, 17:16 geändert)
Top
 
Petra Rudolph p
Beiträge: 1554
29. Nov 2002, 18:10
Beitrag #7 von 8
Beitrag ID: #18071
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


*g* joh, das echo ist auch drin *g*

Schwedisch/finnisch???
Ist das dein Ernst?
Oder nimmst du mich auf den Arm?
Wie findet man so was raus?

Grüßle Petra

http://www.quicktoweb.de
als Antwort auf: [#18007] Top
 
oesi50  A  S
Beiträge: 2315
29. Nov 2002, 18:26
Beitrag #8 von 8
Beitrag ID: #18073
Bewertung:
(1796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Umlaute


Hallo Petra,

doch, doch, das stimmt schon, MYSQL wurde in Uppsala entwickelt.

In der MYSQL Doku steht es auch drin.

http://www.mysql.com/.../Character_sets.html

Wenn Dein Provider nur die Standardinstallation drauf hat, dann ist das tatsächlich so.
Im allgemeinen sind doch alle zu faul, solche Programme zu lokalisieren (das ist Arbeit).

Der Kommentar ist hier zu beachten!
http://www.mysql.com/...n_character_set.html

Grüße oesi
als Antwort auf: [#18007]
(Dieser Beitrag wurde von oesi50 am 29. Nov 2002, 18:34 geändert)
Top
 
X