Vom Browser eingegebene Werte werden in PHP-Programmen verstümmelt


Datum der Veröffentlichung:8. Dezember 2020.



INFOMARTION > Vom Browser eingegebene Werte werden in PHP-Programmen verstümmelt

Überblick.

Beim Wechsel von der Eingabemaske zur Bestätigungsmaske in PHP trat unleserlicher Text auf.

Der Text ist verstümmelt, wenn Sie Text in das Formular eingeben und zum Bestätigungsbildschirm wechseln.

Aufgrund von Eingabeprüfungsfehlern kommt es auch beim Übergang zum eigenen Bildschirm zu unvollständigem Text.

Da der Server gerade erst gebaut worden war, hatte ich das Gefühl, dass etwas in der PHP-Konfiguration fehlte. Ich werde also beschreiben, was ich damals herausgefunden habe.


Inhaltsübersicht

  1. Untersuchung (um die Ursache von etwas zu ermitteln)
  2. Zusammenfassung

1. Untersuchung (um die Ursache von etwas zu ermitteln)

Die folgenden Informationen wurden untersucht, um die Ursache des Problems herauszufinden.

1-1. Umfrage

Überprüfen Sie zunächst die PHP-Einstellungen (php.ini).

php.ini


default_charset = "UTF-8"
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On

Es ist wie oben beschrieben und scheint in Ordnung zu sein.

Dann scheint das Problem durch den PHP-Quellcode verursacht zu werden.

Die PHP-Quelle hat jedoch das wahrscheinliche Problem nicht identifiziert.

Ich habe die php.ini noch einmal auf verdächtige Einstellungen überprüft und eine verdächtige Einstellung gefunden.

php.ini


mbstring.http_input = auto

Es war unklar, ob es in UTF-8 kodiert war, weil es auf auto eingestellt war, also wurde es wie folgt geändert, um es auszuprobieren.

php.ini


mbstring.http_input = UTF-8

Der verstümmelte Text wurde erfolgreich aufgelöst.

Diese Einstellung ist für das mbstring-Modul notwendig, wenn Multibyte-Strings wie z.B. Japanisch in PHP verwendet werden.

Konfiguration der Kodierung der empfangenen http-Anfragen.

2. Zusammenfassung

Wenn ein verstümmelter Text auftritt, versuchen Sie zunächst, den Verarbeitungsablauf zu organisieren.

Wenn Sie bei der Verwendung von PHP für den Übergang vom Eingabebildschirm zum Bestätigungsbildschirm oder anderen Bildschirmübergängen verstümmelte Zeichen feststellen, sollten Sie die folgenden Einstellungen in der Datei php.ini vornehmen.

Die Standardeinstellung ist 'auto', also überprüfen Sie dies, wenn Sie mbstring verwenden, um Multibyte-Strings zu verarbeiten.

Danke, dass Sie bis zum Ende zugesehen haben.