Въведените от браузъра стойности се изкривяват в програмите PHP


Дата на публикуване:8 декември 2020 г.



INFOMARTION > Въведените от браузъра стойности се изкривяват в програмите PHP

Преглед.

При преминаване от екрана за въвеждане към екрана за потвърждение в PHP се появяваше изтрит текст.

Текстът се изкривява при въвеждане на текст във формуляра и преминаване към екрана за потвърждение.

При преминаване към собствения екран също се появява изтрит текст поради грешки при проверката на въвеждането.

Тъй като сървърът беше току-що построен, почувствах, че нещо липсва в конфигурацията на PHP, затова ще опиша какво открих тогава.


Съдържание

  1. разследване (за установяване на причината за нещо)
  2. резюме

1. разследване (за установяване на причината за нещо)

Следната информация беше проучена, за да се установи причината за проблема.

1-1. проучване

Първо проверете настройките на PHP (php.ini).

php.ini


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

Той е както е описан по-горе и изглежда добре.

Тогава проблемът изглежда се дължи на източника на PHP.

Въпреки това източникът на PHP не идентифицира вероятния проблем.

Отново проверих php.ini за подозрителни настройки и открих една подозрителна настройка.

php.ini


mbstring.http_input = auto

Не беше ясно дали е кодирано в UTF-8, тъй като беше зададено автоматично, затова беше променено по следния начин, за да се изпробва.

php.ini


mbstring.http_input = UTF-8

Успешно разрешен изкривен текст.

Тази настройка е необходима за модула mbstring, когато в PHP се използват многобайтови низове, например японски.

Конфигуриране на кодирането на получените http заявки.

2. резюме

Ако се появи изкривен текст, първо се опитайте да организирате потока на обработка.

Ако при използване на PHP за преминаване от екрана за въвеждане към екрана за потвърждение или за други преходи към екрана се появяват изкривени символи, подозирайте следните настройки в php.ini.

Настройката по подразбиране е 'auto', затова я проверете, когато използвате mbstring за обработка на многобайтови низове.

Благодарим ви, че гледахте до края.