Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich würde nach einer kurzen Recherche dazu tendieren, die Zeichenketten in PHP mittels utf8_decode von UTF-8 nach ISO zu kodieren.
die Javascript-Funktion escape () ist anzuwenden, wenn du dynamisch Werte aus Textfeldern ausliest und mittels AJAX versenden möchtest. Im von dir geposteten Beispiel käme statt dessen eher die PHP-Funktion rawurlencode in Frage (für den Namen)
Du meintest vorhin UTF8 hat noch Tücken. Was sprichst du damit speziell an? Auch was meine Umlaute betrifft?
Mit JS habe ich ehrlichgesagt sehr wenig Erfahrung, deswegen wüsste ich gar nicht ein escape richtig anzuwenden. rawurlencode kenne ich auch noch nicht, aber ich versuche mich zu informieren.
UTF-8 hat keine Tücken. Es gibt jedoch Dinge, die man wissen muss, wenn man UTF-8 Charsets in PHP verarbeiten möchte. Beispielsweise liefert die Funktion strlen bei UTF-8 Zeichenketten falsche Werte. Statt dessen ist die Funktion mb_strlen zu verwenden und das Charset UTF-8 als Parameter zu übergeben. Das meinte ich mit Tücke . Anonsten lies dich mal in die Themen rein.
Ich mache für heute Feierabend und wünsche dir noch viel Erfolg.
Okay, werde ich machen. Dankeschön nochmal für die große Hilfe!
Was das escapen mit JS und rawurlencode angeht, das werde ich wohl erstmal verschieben und nur PHP zum Escapen verwenden, sobald ich mehr weiß was ich da überhaupt tue.
Muss ich eigentlich einen int-Cast machen, wenn die Daten von mir festgelegt sind? Zum Beispiel, wenn man sein Geschlecht wählen will, gibt es von mir die Werte von 0-2 (unbestimmt, weiblich, männlich). Da muss ich aber keinen Cast in die DB machen, oder? Ich meine, das kann man doch nicht als User beeinflussen, denn die sehen ja nur lediglich den Geschlechts-Text!?
In der Regel werden diese Abfragen in Formularen durch Select-Boxen (Dropdown) oder Radio-Buttons gelöst. Der benutzer sieht im Browser zwar die Bezeichnungen, beim Absenden des Formulars wird jedoch die nicht sichtbare ID versendet. Ein manipulativer böser "Hacker" könnte das Senden dieses Formulars sehr einfach simulieren und anstelle eines Integer Wertes eine Zeichenkette (z.B. zur Provokation einer SQL-Injection) versenden.