mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 08:22 Benutzername: Passwort: Auto-Login

Thema: PHP mysql .. mal wieder Umlaute - ich verzweifele jetzt echt vom 12.12.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP mysql .. mal wieder Umlaute - ich verzweifele jetzt echt
Autor Nachricht
alecsk
Threadersteller

Dabei seit: 15.09.2006
Ort: Pforzheim
Alter: 41
Geschlecht: Männlich
Verfasst Mi 12.12.2007 11:28
Titel

PHP mysql .. mal wieder Umlaute - ich verzweifele jetzt echt

Antworten mit Zitat Zum Seitenanfang

Hallo liebe Genossinen und Genossen *fg*

Ich verzweifle jetzt echt .. ok moment .. ich rauch erstmal eine ...
...
SO!
Ich hab hier so ein Script das will mir keine Umlaute darstellen - bzw. die Datenbank nimmt auch keine Umlaute an. Darin werden nur wirre Zeichen gespeichert. Ich habs mit ISO..1 und UTF-8 probiert. Will nicht.
Momentan auf ISO gestellt.

Im PHP Script hab ich nun auch noch
Code:
header('Content-Type: text/html; charset=iso-8859-1');

eingepflanzt. Nun sehe ich das wenigstens die Kodierung im Script und DB einheitlich sind. Denn nun werden mir wenn ich Umlaute per POST absende diese auch als wirre Zeichen dargestellt :)

Mal zum Script:

Code:

<html>
<header>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body>
<? session_start ();
header('Content-Type: text/html; charset=iso-8859-1');
// DATENBANKVERBINDUNG
$db_host = "xxx";         // Datenbank - Server / Host
$db_user = "xxx";      // SQL Zugang - User
$db_pass = "xxx";         // Passwort für Datenbank
$db_name = 'myfds_userdb';      // Datenbank Name
$verbindung = mysql_connect ($db_host, $db_user, $db_pass);

$myfds_connect = mysql_select_db($db_name, $verbindung);
// Speichert den Inhalt des Profils
// -> Allgemein -> Willkommenstext

$fremduser_id = $_SESSION['fremduser_id'];

$insertit = $_POST['value'];
$insertit = str_replace("\n", "<br>", $insertit);

$insertit = str_replace("ä", "&auml;", $insertit);
$insertit = str_replace("ö", "&ouml;", $insertit);
$insertit = str_replace("ü", "&uuml;", $insertit);
$insertit = str_replace("Ä", "&Auml;", $insertit);
$insertit = str_replace("Ö", "&Ouml;", $insertit);
$insertit = str_replace("Ü", "&Uuml;", $insertit);

$sql_update_a = "UPDATE user_profildaten SET a_begruessung = '$insertit' WHERE id_user = $fremduser_id";
mysql_query($sql_update_a);

echo $insertit;
?>
</body>
</header>
</html>


Wie man sieht versuchte ich auch schon mittels str_replace die Umlaute umzuformen .. aber es muss doch verdammt nochmal möglich sein einfach die Umlaute in die Datenbank zu schreiben.

Wenn ich in der Datenbank einen Text MIT Umlaute speichere, macht er das doch auch richtig und gibt sie auch richtig im Dokument aus.

Bitte bitte ich weis nicht mehr weiter grad..


Zuletzt bearbeitet von alecsk am Mi 12.12.2007 12:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 12.12.2007 12:02
Titel

Antworten mit Zitat Zum Seitenanfang

Tjo, eigentlich kein Problem, die Datenbank nimmt einen Bytestream an, die interessiert dabei die Zeichencodierung nicht die Bohne...

Du Verwendest unterschiedliche ISO-Charsets im http-header deiner Seite und im meta-tag. Ich weiß im Einzelfall nicht, welchem der Browser den Vorzug gibt.

Trotzdem sollte auch das mit der Formulardatenübermittlung nichts zu tun haben. Du kannst im <form>-Tag ein Attribut accept-charset verwenden, in dem du explizit nur bestimmte Zeichensätze zulässt (natürlich wieder Browserabhängig).

Eigentlich ist das eh alles Backe. Benutze Unicode (utf-8 ), und deine Probleme sollten ein Ende haben.

Ach ja, schau dir mal die funktion htmlentities() an. Dennoch würde ich Umlaute nicht maskieren, bevor du sie in die Datenbank hackst. Ein einfaches mysql_(real)_escape_string() würde schon reichen, Voraussetzung: Die php.ini-Einstellung magic_quotes_gpc steht auf 0/off (was eigentlich mittlerweile Standard sein sollte, da dieser Hack in künftigen PHP-Versionen eh entfallen wird).

Also die Roh-Daten immer schön sp wie sie sind abspeichern, aufbereiten kannst du sie für die spätere Ausgabe immer noch (bspw. html-eigene Zeichen/tags escapen etc.).


Zuletzt bearbeitet von bacon am Mi 12.12.2007 12:06, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
alecsk
Threadersteller

Dabei seit: 15.09.2006
Ort: Pforzheim
Alter: 41
Geschlecht: Männlich
Verfasst Mi 12.12.2007 12:13
Titel

Antworten mit Zitat Zum Seitenanfang

ich verstehe nur nicht warum ich in der DB ein Ä eingeben kann und dieses auch als Ä ausgegeben wird .. hm ..
mit UTF-8 hab ich ja auch schon rugewurschtelt - das will auch nicht ... str_replace bei Umlauten igoriert er auch ..

ich probiere es aber nun auch nochmal .. also alles UTF-8 .. ich wette aber es geht wieder nicht! *g*

Im übrigen kann ich per Form nichts weiter übergeben - ich verwende jQuery jEditabel - der sendet das von JS als POST. Aber ich meld mich nochmal wenn ichs per UTF-8 habe wenn es sich denn nicht vermeiden lässt :(

Bin enttäuscht das in dieser modernen Welt solche Dinge immernoch nicht auf Anhieb funktionieren :(
  View user's profile Private Nachricht senden
eViLaSh

Dabei seit: 22.05.2003
Ort: Texas
Alter: 40
Geschlecht: Männlich
Verfasst Mi 12.12.2007 12:30
Titel

Antworten mit Zitat Zum Seitenanfang

alecsk hat geschrieben:

Im übrigen kann ich per Form nichts weiter übergeben - ich verwende jQuery jEditabel - der sendet das von JS als POST. Aber ich meld mich nochmal wenn ichs per UTF-8 habe wenn es sich denn nicht vermeiden lässt *Schnief*


evtl. liegts daran?

zeig doch mal dein formular.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Kontaktformular ich verzweifele... Pflichtfelder
IE6/7 und floats mit display:inline - ich verzweifele
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
BLOB in mysql per php oder mysql einfügen
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.