-
17.03.10 16:23 #1
Hi,
Ich habe meine DB und Seite auf UTF-8 gebracht.
Und habe folgenden Code:
Er über nimmt die Daten aus folgenden Formular:PHP-Code:$db = new MySqli("localhost", "root", "", "xyz");
$db->set_charset("utf8");
$this->con = $db;
$name = $this->con->real_escape_string($_POST['name']);
$email = $this->con->real_escape_string($_POST['email']);
$text = $this->con->real_escape_string($_POST['text']);
$homepage = ($_POST['homepage']!=NULL)? $this->con->real_escape_string($_POST['homepage']) : NULL;
if($homepage != NULL)
$sql = "INSERT INTO `comments`
(name, email, homepage, text, ip, timestamp, keyword)
VALUES ('".$name."', '".$email."', '".$homepage."', '".$text."',
'".$_SERVER['REMOTE_ADDR']."', '".time()."', '".$this->keyword."')";
Und bei der MySql-Tablle sind alle Felder auf Kollation utf8_general_ci gestellt.HTML-Code:<form action="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>#com" method="post" id="comForm" accept-charset="utf-8"> <p><label for="name">Name: <span>*</span></label> <input type="text" name="name" id="name" value="" /></p> . . . </form>
Nun kommt aber sowas (ääüüüpü) dabei heraus wenn ich ä´s etc rein schreiben möchte.
Jetzt meine frage was muss ich noch tuen?!Geändert von VanHellsehn (17.03.10 um 16:30 Uhr)
=)
-
17.03.10 16:35 #2
Hi,
ich würde dir empfehlen Unicode als Charset für deine Seite zu verwenden (was ja eh standart ist, bzw standartisiert wird).
Danach sollte das eigentlich funktionieren mit den Zeichen.
Ansonsten empfehle ich dir alle Umlaute umzuschreiben. Dh. für ein ä ä.
Für ein Ä Ä
Code :1 2 3 4 5 6 7 8
[B]HTML für folgende Umlaute:[/B] [COLOR="Blue"]ä[/COLOR] - ä [COLOR="Blue"]Ä[/COLOR] - Ä [COLOR="Blue"]ö[/COLOR] - ö [COLOR="Blue"]Ö[/COLOR] - Ö [COLOR="Blue"]ü[/COLOR] - ü [COLOR="Blue"]Ü[/COLOR] - Ü [COLOR="Blue"]ß[/COLOR] - ß
MfGHTML-Code:<meta http-equiv="content-type" content="text/html"; charset="ISO-8859-1" />
EDIT: wenn du noch was zum thema nachlesen möchtest, KLICK
Anere Stichwörter bei Google sind UTF-8, Unicode, ISO-8859-1, charset, html, umlaute...Geändert von Marschal (17.03.10 um 16:48 Uhr)
" Gehirn: ein Organ, mit dem wir denken, daß wir denken. "
Ambrose Bierce
-
Weitere Zeichensätze die neben den reinen Datenbankfelder intressieren ist der Charset der Website. Denn im gleichen sendet der Browser die Inputfelder.
Eine Globale Lösung wie man es für alle Datenbank befehle zurecht schieben könnte währe den Zeichensatz der datenbank verbindung zu ändern hier z.B. auf utf8
Die HTML entities in die Datenbank zu schreiben ist nicht zu empfehlen da man sich hier Datenbankfunktionen zum vergleichen und suchen verbaut.PHP-Code:mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
-
17.03.10 16:47 #4
Das passt nicht ganz zusammen xD
Aber naja ich habe schon Unicode für meine Seite als Zeichensatz.
All das habe ich schon da es ganz klar ist..HTML-Code:<?xml version="1.0" encoding="utf-8"?> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> </head>...
Edit:
Damit klappt es auch nicht..
Würde ich niemals machen.. ist fast so wie wenn man in einem Forum die BB-Codes erst ersetzt und dann den Artikel speichert.. es bringt nichts
Geändert von VanHellsehn (17.03.10 um 16:52 Uhr)
=)
-
17.03.10 16:52 #5
wirklichO.o habe ich da jetzt was verwechselt

gut, vllt sollte ich nochmal etwas mehr lesen
" Gehirn: ein Organ, mit dem wir denken, daß wir denken. "
Ambrose Bierce
-
17.03.10 16:59 #6
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.960
Was mir gerade noch bei deinem Quelltextschnipsel aufgefallen ist: du verwendest XHTML (erkennbar an der XML-Deklaration in der ersten Zeile), aber den MIME-Typ für normales HTML text/html. Aus Ordnungsgründen verwende lieber den MIME-Typ für XHTML: application/xhtml+xml
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
17.03.10 17:03 #7
application/xhtml+xml ?
Du meinst das Imkopf dann stehen würde:
Oder was?HTML-Code:<?xml version="1.0" encoding="utf-8"?> <html> <head> <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" /> </head>...
http://www.w3.org/TR/xhtml-media-types/Geändert von VanHellsehn (17.03.10 um 17:07 Uhr)
=)
-
17.03.10 17:25 #8Quelle: http://schneegans.de/web/xhtml/Einige verwirrte Leute sind offenbar der Überzeugung, mit
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
in einem text/html-Dokument den XML-Parser des Benutzeragenten aktivieren zu können. Das ist natürlich Unsinn. Ein Benutzeragent müßte mit seinem Tagsoup-Parser beginnen und ab dem meta-Element mit seinem XML-Parser weitermachen oder gar noch einmal von vorne beginnen.
Tatsächlich ist application/xhtml+xml an dieser Stelle nicht nur wirkungslos, sondern sogar schädlich. Mindestens Lynx nämlich kann aus
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
die Deklaration der Codierung ermitteln, aus
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
aber nicht. Es spricht nichts dagegen, auch in einem XHTML-Dokument die Zeichencodierung bspw. mit
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
anzugeben. Das kann sogar notwendig sein, wenn Sie die Zeichencodierung ansonsten nur in der XML-Deklaration angegeben und nicht in einem „echten“ HTTP-Header wie Content-Type: text/html; charset=iso-8859-1, denn HTML-Benutzeragenten verarbeiten die XML-Deklaration nicht.
Mit application/xhtml+xml im richtigen Content-Type-Header ist das meta-Element hingegen völlig irrelevant.
Also ich denke ich lasse das
Geändert von VanHellsehn (17.03.10 um 17:31 Uhr)
=)
-
17.03.10 18:05 #9
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.960
Mag sein, dass das einige Browser falsch interpretieren, richtig ist es dennoch.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
17.03.10 18:14 #10
Warum soll ich das den machen wenn text/html; reicht?
=)
-
Hallo,
vermutlich wird dein HTML-Dokument nicht von Server im UTF-8-Zeichencode ausgeliefert.
Gibt die Seitenadresse doch mal im Web-Sniffer ein und sieh dir mal an, ob im HTTP-Header evtl. etwas ähnliches wie hier drinsteht:
Der Browser richtet sich in erster Linie nach dem Eintrag im Content-Type-Feld des HTTP-Headers. Nur wenn er dort nichts findet (weil es das beispielsweise überhaupt nicht gibt, wenn man das Dokument lokal von der Festplatte geladen hat), dann verwendet er die Content-Type-Deklaration im Meta-Tag des HTML-Headers.Code :1 2 3 4 5 6 7 8 9
Status: HTTP/1.1 200 OK Date: Wed, 10 Mar 2010 10:48:20 GMT Server: Apache/2.2.9 (Debian) PHP/5.3.1 with Suhosin-Patch X-Powered-By: PHP/5.3.1 Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 458 Connection: close Content-Type: text/html; [COLOR=Blue]charset=ISO-8859-1[/COLOR]
In der Artikelserie "PHP und UTF-8, eine Anleitung" (insbesondere im zweiten Teil: "Webseiten als UTF-8 ausliefern") wird beschrieben, wie man den Server veranlasst das Dokument im gewünschten Zeichencode auszuliefern.
-
17.03.10 20:32 #12
Hi,
Gegooglet habe ich auch schon.. nur ich habe den header, per PHP via. header();, per htaccess via AddCharset und per Html gesendet. Also was soll ich noch tuen?!=)
-
... ja genau. Und was steht denn nun im HTTP-Header?
-
17.03.10 20:49 #14Code :
1 2 3 4 5 6 7 8 9 10 11
Status: HTTP/1.1 200 OK Date: Wed, 17 Mar 2010 19:54:03 GMT Server: Apache/2.2.15 X-Powered-By: PHP/5.2.13 Set-Cookie: PHPSESSID=d00647616ed112ada4b70399893e57dc; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8
Geändert von VanHellsehn (17.03.10 um 20:52 Uhr)
=)
-
... und in der Tabelle darunter?
EDIT:
Verzeihung - war der richtige Eintrag.
Schade, dann war meine Vermutung doch nicht richtig.Geändert von hela (17.03.10 um 20:56 Uhr)
Ähnliche Themen
-
PHP Date und Time werden nicht korrekt gespeichert
Von JDF1976 im Forum PHPAntworten: 19Letzter Beitrag: 09.04.08, 14:58 -
Daten werden nicht gespeichert
Von bodoschmidt im Forum .NET DatenverwaltungAntworten: 2Letzter Beitrag: 22.01.08, 00:13 -
Daten werden in Array nicht richtig gespeichert
Von cesupa im Forum PHPAntworten: 5Letzter Beitrag: 31.08.07, 11:43 -
Daten werden nicht in der Datenbank gespeichert
Von Dirk_1973 im Forum PHPAntworten: 6Letzter Beitrag: 06.02.05, 20:39 -
Daten werden nicht gespeichert...
Von chpa im Forum PHPAntworten: 11Letzter Beitrag: 04.08.04, 19:49



1Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren