sonderzeichen in datenbank umwandeln

Alles, was PHP betrifft, kann hier besprochen werden.

sonderzeichen in datenbank umwandeln

Postby strobi80 » 09. June 2013 19:33

Hallo Community,

ich würde gerne wissen, ob es möglich ist, bei Datensätzen, die ich über ein Eingabeformular an meine Datenbank sende, direkt die Sonderzeichen umzuwandeln, so dass sie in mysql schon als html-Codierung dargestellt werden. also ä zu &auml, ü zu ü usw...
habe schon mit htmlentities rumgespielt und mir eine Funktion gebastelt, die folgendermaßen aussieht:

Code: Select all
<?php
function change($in,&$out) {
$out = htmlentities($in);
}

change($_POST["temp"],$out);
echo $out;
?>


aber trotzdem werdenü,ö,ä in der Datenbank auch als ö,ü,ä dargestellt...möcht ich aber nicht...
dann hab ich versucht, die Tabellen einfach upzudaten, nachdem die Werte eingetragen wurden:

Code: Select all
UPDATE tabelle SET temp = REPLACE ( temp, \'ö\', \'&ouml;\')


das funktioniert einwandfrei so, aber da meine Tabellle doch einiges an Einträgen hat, muss ich hier für jedes Sonderzeichen und jede Reihe eine eigene Codezeile basteln und ich denke mal, das sollte einfacher gehen...

jemand ne Idee? Vor allem, warum meine Funktion nicht funktioniert?

Dank sei Euch gewährt :)
strobi80
 
Posts: 3
Joined: 05. March 2013 14:17
Operating System: windows 7

Re: sonderzeichen in datenbank umwandeln

Postby Altrea » 09. June 2013 20:16

Hallo strobi80,

Gegenfrage: Warum möchtest du Umlaute und sonstige Sonderzeichen überhaupt kodieren?
Das war vielleicht vor 10-15 Jahren bei Webdokumenten empfohlen, da sich zu der Zeit noch kein Zeichensatz bei allen Browsern flächendeckend durchgesetzt hatte der sprachabhängige Sonderzeichen bei ausreichend vielen Sprachen unterstützt hätte. Heutzutage kennen wir UTF-8 und dieser Zeichensatz wird sehr weitreichend über Browser und Datenbanken hinweg unterstützt.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8298
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: sonderzeichen in datenbank umwandeln

Postby muhkuh » 15. September 2013 23:14

hi strobi

du kannst, wenn deine Datensätze von einem Formular kommen, diese vorher abfangen (was selbstverständlich sein sollt (mysql_real_escape_string())) und auf Umlaute prüfen/ersetzen!

html
Code: Select all
<form name="" action="deine.datei.php" method="post">
  <textarea name="text" cols="65" rows="17"></textarea>
  <input type="submit" name="submit" value="Senden">
</form>



php
Code: Select all
$posting_1 = mysql_real_escape_string($_POST["text"]); # das ist der teil aus der textarea                                 

$verboten = array('ä','ö','ü','ß');
$erlaubt = array('ae ','oe','ue','ss');
$posting_2 = str_ireplace($verboten, $erlaubt, $posting_1);
                               
# und jetzt der rest von deinem code
muhkuh
 
Posts: 2
Joined: 15. September 2013 22:46
Operating System: win xp


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests