MySQL - keine umlaute und sonderzeichen zulassen
carsten schlichting
- php
Hallo
Um Rechtschreibe_Varianten bei der Eingabe in Formularen zu vermeiden, möchte ich nur ganz einfache Buchstaben zur Verfügung stellen....also keine Umlaute und Sonderzeichen. Am besten nur das ganz einfache Alphabet von a-Z.
weiß jemand ob das geht.
hab bisher noch nichts gefunden.
kann ich zur Not nicht in PHP selber eine Zeichen kette überprüfen, so dass ich , wenn ein zeichen auftritt was nicht gewünscht ist, eine fehlermeldung ausgeben könnte.
grüße von mir
carsten
gudn tach carsten!
weiß jemand ob das geht.
ich weiss, dass es geht.
kann ich zur Not nicht in PHP selber eine Zeichen kette überprüfen, so dass ich , wenn ein zeichen auftritt was nicht gewünscht ist, eine fehlermeldung ausgeben könnte.
nein, das kannst du in php machen. (@wahsaga: wegen dem logischn "nein"... du darfst mich schlagen)
besser als eine fehlermeldung ist aber moeglicherweise eine user-absichts-erkennung.
wenn in der datenbank z.b. der eintrag "gruen" steht und jemand bspw. in einem suchformular nach "grün" sucht, dann kannst du per php einfach alle umlaute und das sz vorher umwandeln in ein anderes format (z.b. mit str_replace()). so bleibt der user von einer fehlermeldung verschont und kommt trotzdem zu seinem gewuenschten ergebnis.
prost
seth
wenn in der datenbank z.b. der eintrag "gruen" steht und jemand bspw. in einem suchformular nach "grün" sucht, dann kannst du per php einfach alle umlaute und das sz vorher umwandeln in ein anderes format (z.b. mit str_replace()). so bleibt der user von einer fehlermeldung verschont und kommt trotzdem zu seinem gewuenschten ergebnis.
Hi danke , hier hab ich auch den Link gefunden. wie du sagst es ist wohl die bessere variante.
http://de3.php.net/manual/de/function.str-replace.php
kennt jemand die Umwandlung von zeichen in fremden sprachen. Z. B. in den skandinavischen Sprachen.
oder wie behandelt man è und é könnte mir gut vorstellen, das hier die ein oder andere Verwechslung auftritt.
gibt es da eventuell schon vorgefertigte arrays, die man benutzen kann?
grüße von mir
carsten
echo $begrüßung;
besser als eine fehlermeldung ist aber moeglicherweise eine user-absichts-erkennung.
Solche stillschweigenden Automatismen finde ich nicht gut. Der Anwender gibt sich einen Usernamen mit Umlaut drin und verlässt sich aus das was er eingegeben hat. Beim nächsten Einloggen bekommt er dann die Fehlermeldung, die du ihm eigentlich ersparen wolltest.
Ich bevorzuge lieber: "Bitte geben Sie sich einen Namen der nur aus den Buchstaben a..z besteht." inklusive Prüfung ob nur diese erlaubten Zeichen eingegeben wurden.
echo "$verabschiedung $name";
P.S. Ich kann mir auch nicht vorstellen, wie "Rechtschreibvarianten vermeiden" funktionieren soll und was dessen praktischer Nutzen ist.
Hi
Ich bevorzuge lieber: "Bitte geben Sie sich einen Namen der nur aus den Buchstaben a..z besteht." inklusive Prüfung ob nur diese erlaubten Zeichen eingegeben wurden.
weiß eigentlich jemand wie die Franzosen das mit é und è machen, wenn diese Zeichen nicht möglich sind, oder die skandinavier. Gibt es dort auch so umschreibungen wie bei uns für ü-->ue
P.S. Ich kann mir auch nicht vorstellen, wie "Rechtschreibvarianten vermeiden" funktionieren soll und was dessen praktischer Nutzen ist.
naja -manchmal müssen sich menschen ja auch ganz genau ausweisen können, und wenn derjenige sich ausversehen zwei mal registriert , hat man denjenigen eben zweimal und ist sich unsicher, ob es sich um dieselbe person handelt. Vielleicht bekommt man das dann auch gar nicht mit, dass derjenige zweimal vorhanden ist. natürlich könnte man ihn dann auch persönlich kontaktieren. auf der anderen seite sollte man jedem zutrauen, seinen namen richtig schreiben zu können.;-)
carsten
echo $begrüßung;
weiß eigentlich jemand wie die Franzosen das mit é und è machen, wenn diese Zeichen nicht möglich sind, oder die skandinavier. Gibt es dort auch so umschreibungen wie bei uns für ü-->ue
Soweit mir bekannt ist gibt es im Französischen keine Ersatzschreibweise. Bei Großschreibung wird der Akzent einfach weggelassen. Aus Mylène wird dann MYLENE.
Wenn du mit der Regel ö -> oe im Deutschen noch einigermaßen (oder einigermassen? oder einigermaszen?) gut wegkommst, landest du damit im Niederländischen auf der Nase. Die ¨ bedeuten, dass man diesen Vokal extra spricht, ansonsten werden doppelte Vokale lang ausgesprochen: coördinator sprich sich co-ordinator. cooerdinator ist einfach falsch und müsste, weil oe wie u gesprochen wird, courdinator gesprochen werden. (So eine Buchstabenkombination (ooe) ist mir aber noch nicht über den Weg gelaufen.)
echo "$verabschiedung $name";
Hi
also ich mache einen shop und möchte auch international verkaufen. Und jetzt habe ich mich mal schlau gemacht und es ist ja fast wahnsinn wie viele sprachen mit verschiedenen buchstaben es gibt.
wahrscheinlich muß ich meine mysql tabelle jetzt mit einer kollation
utf8 unicode ci
ausrüsten--oder? Hier sind ja angeblich alle sprachen enthalten.
Aber kann denn mein computer alle eingegebenen buchstaben überhaupt interpretieren?
Kann windows alle diese buchstaben ausgeben?
grüße von mir
carsten
echo $begrüßung;
wahrscheinlich muß ich meine mysql tabelle jetzt mit einer kollation
utf8 unicode ci
ausrüsten--oder? Hier sind ja angeblich alle sprachen enthalten.
Das ist keine Frage des Enthaltenseins. Andersherum wird eher ein Schuh draus.
Ein Zeichensatz ist eine Vorschrift, welches Zeichen auf welchen Wert abgebildet wird. Zum Beispiel bekommt im Zeichensatz X ein A den Wert 1, B den Wert 2. Und andersrum, wenn eine 1 auftaucht steht die für das A, 2 für B.
Nun gibt es folgende Probleme:
In Unicode sind 1.114.112 Zeichen[1] und deren Werte festgelegt. UTF8 ist nun eine Transformationsvorschrift für Unicode und man kann damit die Unicode-Zeichen mit 1 bis 4 Byte darstellen.
Ob du nun allerdings utf8_unicode_ci oder utf8_general_ci oder noch ein anderes utf8_*_ci nimmst ist nur eine Frage des Sortierung.
Aber kann denn mein computer alle eingegebenen buchstaben überhaupt interpretieren?
Er, bzw. jeder am Verarbeitungsvorgang beteiligte Prozess, wird die Zeichen richtig interpretieren, wenn er weiß, welche Kodierung vorliegt und mit dieser Kodierung was anfangen kann.
Außerdem lässt sich nicht jede Kodierung in jede andere umwandeln. ISO-8859-x hat nur Platz für 255 Zeichen, da passen natürlich nicht alle Unicode-Zeichen rein.
Kann windows alle diese buchstaben ausgeben?
Wenn du mit ausgeben das Darstellen auf dem Bildschirm meinst, dann ist das eine Frage der Fonts. Kein mit Windows ausgelieferter Font hat für jedes Unicode-Zeichen ein entsprechendes Bild. Mir ist auch kein anderer Font bekannt, der für alle Unicode-Zeichen Glyphen enthält. Inwieweit es sinnvoll ist, wirklich jedes Unicode-Zeichen darstellen zu müssen, ist eine andere Frage.
echo "$verabschiedung $name";
gudn tach!
besser als eine fehlermeldung ist aber moeglicherweise eine user-absichts-erkennung.
Solche stillschweigenden Automatismen finde ich nicht gut.
deswegen mein "moeglicherweise". bei dem von dir genannten user-namen-beispiel waere es selbstverstaendlich doof.
aber wenn ich z.b. nach etwas suche, kann sowas hilfreich sein. allerdings sollte man imho auch darauf hingewiesen werden, dass diese konvertierung erfolgt.
P.S. Ich kann mir auch nicht vorstellen, wie "Rechtschreibvarianten vermeiden" funktionieren soll und was dessen praktischer Nutzen ist.
umlaute und sz fuehren haeufig zu problemen (siehe z.b. auch hiesiges archiv). wenn man diese zeichen vermeidet, umgeht man auch viele probleme, die durch sie auftreten.
ein typisches problem ist z.b. das bedienen von einem computer, bei dem nicht die deutsche tastatur eingestellt ist und an dem man keine rechte hat auf ein anderes layout umzustellen.
prost
seth