Wartości wprowadzane przez przeglądarkę są zniekształcane w programach PHP


Data publikacji:8 grudnia 2020 r.



INFOMARTION > Wartości wprowadzane przez przeglądarkę są zniekształcane w programach PHP

Przegląd.

Podczas przechodzenia z ekranu wprowadzania danych do ekranu potwierdzenia w PHP występował zniekształcony tekst.

Tekst jest zniekształcony podczas wprowadzania tekstu w formularzu i przechodzenia do ekranu potwierdzenia.

Z powodu błędów sprawdzania danych wejściowych podczas przechodzenia do własnego ekranu pojawia się również zniekształcony tekst.

Ponieważ serwer był dopiero co zbudowany, czułem, że czegoś brakuje w konfiguracji PHP, więc opiszę, czego się wtedy dowiedziałem.


Spis treści

  1. dochodzenie (w celu ustalenia przyczyny czegoś)
  2. streszczenie

1. dochodzenie (w celu ustalenia przyczyny czegoś)

W celu zbadania przyczyny problemu przeanalizowano następujące informacje.

1-1. ankieta

Najpierw należy sprawdzić ustawienia PHP (php.ini).

php.ini


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

Jest on zgodny z opisem powyżej i wydaje się być w porządku.

Wtedy problem wydaje się być spowodowany przez źródło PHP.

Źródło PZP nie określiło jednak prawdopodobnego problemu.

Po raz kolejny sprawdziłem php.ini pod kątem podejrzanych ustawień i znalazłem jedno podejrzane ustawienie.

php.ini


mbstring.http_input = auto

Nie było jasne, czy jest on zakodowany w UTF-8, ponieważ był ustawiony na auto, więc aby go wypróbować, zmieniono go w następujący sposób.

php.ini


mbstring.http_input = UTF-8

Udało się rozwiązać problem zniekształconego tekstu.

To ustawienie jest konieczne dla modułu mbstring, gdy w PHP używa się wielobajtowych łańcuchów, takich jak japoński.

Konfiguracja kodowania otrzymywanych żądań http.

2. streszczenie

W przypadku wystąpienia zniekształconego tekstu należy najpierw spróbować zorganizować przepływ przetwarzania.

Jeśli podczas używania PHP do przechodzenia z ekranu wprowadzania do ekranu potwierdzania lub innych przejść między ekranami występują zniekształcone znaki, należy sprawdzić następujące ustawienia w pliku php.ini.

Domyślnym ustawieniem jest "auto", więc należy je sprawdzić, gdy używamy mbstring do przetwarzania ciągów wielobajtowych.

Dziękujemy, że oglądaliście do końca.