Ich arbeite an einer mehrsprachigen Website mit CodeIgniter. Es gibt ein Formular, das Daten an den Controller sendet, aber $_POST
ist leer, wenn ich anfange, türkische Zeichen wie öçüÜĞ
etc. Zu verwenden.
Ich setze den Zeichensatz auf:
%Vor%Formular:
%Vor% $_POST
und $this->input->post('editor_tr')
gibt leer zurück, aber ich kann den rohen Beitrag mit file_get_contents("php://input")
sehen.
Dies funktioniert in einem normalen PHP-Test, funktioniert aber nicht mit CodeIgniter. Vielleicht verursacht meine .htaccess-Datei das Problem, aber weiß nicht.
Jede Hilfe wird sehr geschätzt.
UPDATE : Hier ist die Ausgabe für var_dump wie angefordert.
var_dump($_POST)
- Ohne türkische Zeichen
var_dump($_POST)
- Mit türkischen Zeichen (Die Eingabe war: Türkçe karakter
, wird aber nicht in $ _POST angezeigt)
UPDATE 2:
Beim Debugging habe ich herausgefunden, dass system.core.Input
class die Eingabedaten von _clean_input_data
function bereinigt.
Bevor also $_POST
für meinen Controller erreicht hat, wird der editor_tr
-Wert in dieser Funktion bereits von system.core.Utf8
class bereinigt:
Da sich die Kommentare häufen und wahrscheinlich übersehen werden, werde ich weitere Vorschläge veröffentlichen.
Leser beachten Sie bitte, dass dies mit $ _POST Datenwerten und nicht mit der Anzeige von Daten auf einer Webseite zu tun hat.
Dieser Benutzer scheint ein ähnliches Problem zu haben:
Codeigniter scheint $ _POST des '£' Charakters zu brechen (Pound )
Es gibt hier einen Bericht über Bitbucket von ähnlichem:
Ссылка : Entfernte Verknüpfung: EllisLabs hat dieses Repo für die Öffentlichkeit geschlossenVielleicht hilft dies (wahrscheinlich nicht):
ini_set('default_charset', 'UTF-8');
Überprüfen Sie, ob Sie keine Validierungs- oder Vorbereitungsregeln für das Feld ausführen. Dinge wie url_title()
streichen diese Zeichen.
Wenn Sie keine vorherige PHP-Version in Ihrer MAMP-Installation verwenden möchten, können Sie Folgendes verwenden:
$_REQUEST
Um die Daten anstelle von $_POST
$_REQUEST
ist ein assoziatives Array, das standardmäßig den Inhalt von $_GET
, $_POST
und $_COOKIE
enthält.
Weitere Informationen: http://php.net/manual/en/reserved.variables.request. php
Und das gibt alle Daten zurück, die aus irgendeinem Grund $_POST
brechen!
Tags und Links php character-encoding codeigniter