String mit Sonderzeichen richtig in die Datenbank schreiben

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Eisvogel
Mitglied
Beiträge: 31
Registriert: 03.04.2009 10:23

String mit Sonderzeichen richtig in die Datenbank schreiben

Beitrag von Eisvogel »

Hallo

Ich schreibe mir grad eine eigene MOD und da will ist String mit Sonderzeichen in der Datenbank ablegen. Das klappt nicht. Sonderzeichen werden immer mit "??" in der Datenbank dargestellt. Der String kommt von einem Formular über POST angetanzt und wird mit request_Var abgefragt. Beim durchforsten der phpBB eigenen Module hab ich "utf8_normalize_nfc" gefunden, jedoch hat auch das keine Wirkung. Was muss ich mit dem doofen String machen, damit er richtig geschrieben wird und später auch wieder richtig gelesen werden kann?

MfG
Der Eisvogel
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: String mit Sonderzeichen richtig in die Datenbank schrei

Beitrag von BNa »

Schreiben

in Datenbank (und da dann $string benutzen)

Code: Alles auswählen

$string = utf8_normalize_nfc(request_var('deine_post_var', '', true)); 
Wichtig is hier true wegen der Multibyte-Fähigkeit (Sonderzeichen etc.)

Alternativ bei Problemen (var splitting)

Code: Alles auswählen

$string = request_var('deine_post_var', '', true); 
$string = utf8_normalize_nfc("$string"); 
Du kannst $string alternativ auch ohne " Anführungsszeichen probieren. Ich mach das immer mit.

Lesen

Normal als Datenbank Abfrage Output.

Wichtig ist auch, das die Eingabe- und Ausgabe-Template Seite des Formulars *.html auch utf8 kodiert ist,
was in phpbb3 Standardseiten gegeben sein sollte.
Eisvogel
Mitglied
Beiträge: 31
Registriert: 03.04.2009 10:23

Re: String mit Sonderzeichen richtig in die Datenbank schrei

Beitrag von Eisvogel »

Das true war der entscheidende Teil. Danke dir.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“