PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

15-01-2014, 13:54
|
jovel51
Registrierter Benutzer
|
|
Registriert seit: Jan 2014
Beiträge: 6
|
|
Zeichensatzproblem seit Ajax
...und noch so einer mit dem alten Problem ;-)
Hallo zusammen,
seit einiger Zeit läuft erfolgreich meine mit PHP und MySql realisierte Wunschbox in unserem Online-Radio. Nun wollte ich die Datenübertragung mit Ajax laufen lassen. Seitdem ich die Ajax-Übertragung der Daten mit jQuery laufen habe, habe ich dieses leidige Zeichensatzproblem.
Meine Scripte laufen mit dem charset ISO-8859-15, meine Datenbank steht auf latin1_german_ci. Bisher hat auch immer alles gut geklappt, nur seitdem ich Ajax verwende werden die Umlaute kryptisch gespeichert und auch ausgegeben. Z.B. ä = ä.
Nun war ich ja noch nicht ganz untätig, hab mich mal umgesehen in diversen Foren und Tuorials und nach längerem suchen hab ich gedacht, och, ganz einfach, stellste halt mal alles auf UTF-8 um. Gesagt, getan, alles geändert (auch die Einstellung im Editor) auf den Server bei Strato geladen, und siehe da.... nix läuft mehr. Es werden keine Daten mehr in der Datenbank gespeichert.
Nun meine Frage, gibt es einfache Lösungsansätze für mein Problem?
Bestimmt hab ich wieder tausend Sachen vergessen zu erwähnen, bitte nicht meckern, einfach posten, alles was fehlt liefere ich gerne nach.
Gruß
jovel
|

15-01-2014, 17:35
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.727
|
|
mal das hier ausprobiert?
PHP-Code:
mysql_query ('SET NAMES utf8');
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

15-01-2014, 21:19
|
jovel51
Registrierter Benutzer
|
|
Registriert seit: Jan 2014
Beiträge: 6
|
|
Noch nicht ausprobiert, werd ich gleich morgen machen und Bericht erstatten.
Gruß
jovel
Geändert von jovel51 (16-01-2014 um 21:47 Uhr)
|

16-01-2014, 21:46
|
jovel51
Registrierter Benutzer
|
|
Registriert seit: Jan 2014
Beiträge: 6
|
|
PHP-Code:
<?php $mysqli = new mysqli('*****'/*Root-Server*/, '******' /*Benutzer-Name*/, '******'/*Passwort*/, '******'/*Datenbankname*/); /*Datenbankverbindung prüfen*/ if (!$mysqli) { printf("Datenbankfehler! Bitte später nochmal probieren", mysqli_connect_error()); exit(); } mysqli_set_charset($mysqli, "utf8"); ?>
Habe das ganze nun so geschrieben. Alle beteiligten Scripte und auch die komplette Datenbank ist auf UTF-8 umgestellt, bekomme trotzdem noch keine Umlaute angezeigt. 
Liegt es vielleicht an der aufbereitung der Daten die per POST an das PHP-Script gesendet werden.
PHP-Code:
$name = htmlentities(strip_tags($_POST["Name"]), ENT_QUOTES); $interpret = htmlentities(strip_tags($_POST["Interpret"]), ENT_QUOTES); $titel = htmlentities(strip_tags($_POST["Titel"]), ENT_QUOTES); $gruesse = htmlentities(strip_tags($_POST["Grüsse"]), ENT_QUOTES);
Für gute Tipps bin ich dankbar!
Gruß
jovel
|

16-01-2014, 21:56
|
jovel51
Registrierter Benutzer
|
|
Registriert seit: Jan 2014
Beiträge: 6
|
|
PHP-Code:
<?php $mysqli = new mysqli('*****'/*Root-Server*/, '******' /*Benutzer-Name*/, '******'/*Passwort*/, '******'/*Datenbankname*/); /*Datenbankverbindung prüfen*/ if (!$mysqli) { printf("Datenbankfehler! Bitte später nochmal probieren", mysqli_connect_error()); exit(); } mysqli_set_charset($mysqli, "utf8"); ?>
HAbe das ganze nun so geschrieben. Alle beteiligten Daten und auch die komplette Datenbank ist auf UTF-8 umgestellt, bekomme trotzdem noch keine Umlaute angezeigt. 
Liegt es vielleicht an der aufbereitung der Daten die per POST an das PHP-Script gesendet werden.
PHP-Code:
$name = htmlentities(strip_tags($_POST["Name"]), ENT_QUOTES); $interpret = htmlentities(strip_tags($_POST["Interpret"]), ENT_QUOTES); $titel = htmlentities(strip_tags($_POST["Titel"]), ENT_QUOTES); $gruesse = htmlentities(strip_tags($_POST["Grüsse"]), ENT_QUOTES);
Für gute Tipps bin ich dankbar!
Gruß
jovel
|

16-01-2014, 22:01
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.611
|
|
Du verwendest htmlentities() falsch. Eigentlich brauchst du es gar nicht. Du brauchst nur bei der Ausgabe (und nicht bei der Variablenzuweisung) htmlspecialchars().
|

16-01-2014, 22:06
|
jovel51
Registrierter Benutzer
|
|
Registriert seit: Jan 2014
Beiträge: 6
|
|
Danke für die Antwort, Du meinst also so?
PHP-Code:
$name = strip_tags($_POST["Name"]); $interpret = strip_tags($_POST["Interpret"]); $titel = strip_tags($_POST["Titel"]); $gruesse = strip_tags($_POST["Grüsse"]);
Gruß
jovel
|

16-01-2014, 22:12
|
jovel51
Registrierter Benutzer
|
|
Registriert seit: Jan 2014
Beiträge: 6
|
|
Super, klappt, vielen Dank für die Hilfe!!!!
...und im nachhinein betrachtet auch logisch!
Gruß
jovel
|

16-01-2014, 22:36
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.611
|
|
Warum strip_tags()? Ist doch auch falsch.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|