Sonderzeichen Entfernen

Cusco

Erfahrenes Mitglied
Hi,

ich habe ein Problem mit Sonderzeichen welche über ein POST Formular übergeben werden können, in der URL tauchen dann z.B. Zeichen-Maskierungen wie %0D, %0A oder %28 auf, die anscheint dazu führen das die Formulardaten nicht in die Datenbank eingetragen werden. Es kann z.b. sogar dazu kommen das eine weisse leere Seite mit der URL angezeigt wird und demzufolge nichts passiert, normaler weise wird nach der Eingabe auf eine Bestätigungssseite umgeleitet. Die Sonderzeichen kommen z.B. ins Formlar wenn Text von einer Webpage ins Formular 1 zu 1 kopiert wird.

Wie kann man solche Zeichen entfernen? Zumal solche Zeichen auch nichts in der Datenbank zu suchen haben. Ich brauche einen reinen Text, bisher wird der Text nur mit mysql_real_escape_string() geprüft, bzw konvertiert. Aber das reicht anscheint nicht.

Edit: Oh ich glaub dieses Thema wäre bei Datenbanken besser aufgehoben, sorry
 
Zuletzt bearbeitet:
Zum Beispiel kannst du "ä" in ae umwandeln und auf dem gleichem Wege würde ich auch die anderen Sonderzeichen behandeln und umwandeln, bevor Du sie in die DB eintragen läßt.
PHP:
function SonderzeichenWandler($str)
{
str = str_replace("ä", "ae", $str);
str = str_replace("ü", "ue", $str);
// usw.

return $str;
}
Ansonsten werden Leerzeichen in der URL ebenfalls mit solchen ZeichenMaskierungen angegeben. Da arbeite ich bsp.weise mit urlencode()

Ich hoffe das ist das, was du suchst.
 
Umlaute können Ja bleiben müssen sogar bleiben, ich spreche von Anderen Sonderzeichen wie Tabtaste und son Zeug.

Aber ich habe Festgestellt das das Problem anscheint woanders Lag, Das Formular war nicht auf POST eingestellt und PHP brachte die Meldung das die GET-Anfrage zu lang ist, da der Text einfach zu Lang war. Das habe ich gerade erst in dieser Stunde festgestellt.

Edit: Nur um was klar zu stellen beim, ersten Posting dachte ich noch das Formlar wäre auf POST eingestellt, nur leider war das nur beim Text ändern der Fall und nicht bei Neuen Text eingeben.
 
Zuletzt bearbeitet:
Benutz einfach im Form-Tag das Attribut accept-charset mit dem Wert: utf-8

Bedenke allerdings, dass deine SQL Datenbank auf utf-8 umgestellt sein muss. Dein normales im Webform präsentiertes Dokument auf iso-8859-1. Dann wird alles richtig ausgegeben ;)
 
Benutz einfach im Form-Tag das Attribut accept-charset mit dem Wert: utf-8

Bedenke allerdings, dass deine SQL Datenbank auf utf-8 umgestellt sein muss. Dein normales im Webform präsentiertes Dokument auf iso-8859-1. Dann wird alles richtig ausgegeben ;)

Hmm die DB ist auf utf8-romania eingestellt damit habe ich gute erfahrung gemacht in sachen Umlaute, ich denke das dürfte schon funktionieren.

Und die Homepage läuft auf iso-8859-1, sonst würden die umlaute falsch oder gar nicht dargestellt werden. Ich zeig euch mal den Link: http://www.goldsammler.eu/edelmetall-anzeigen/ Das Skript ist vorgestern online gegangen, und schon habe ich mit den ersten User Probleme, deshalb dieses Thema.
 
Zurück