Valorile introduse de browser sunt distorsionate în programele PHP


Data publicării:8 decembrie 2020.



INFOMARTION > Valorile introduse de browser sunt distorsionate în programele PHP

Prezentare generală.

La trecerea de la ecranul de introducere a datelor la ecranul de confirmare în PHP se producea un text confuz.

Textul este confuz atunci când introduceți text în formular și treceți la ecranul de confirmare.

De asemenea, la trecerea la ecranul propriu apare text deformat din cauza unor erori de verificare a intrărilor.

Deoarece serverul tocmai fusese construit, am simțit că lipsește ceva din configurația PHP, așa că voi descrie ceea ce am descoperit la acel moment.


Cuprins

  1. investigație (pentru a determina cauza a ceva)
  2. rezumat

1. investigație (pentru a determina cauza a ceva)

Următoarele informații au fost cercetate pentru a investiga cauza problemei.

1-1. sondaj

În primul rând, verificați setările PHP (php.ini).

php.ini


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

Este conform descrierii de mai sus și pare a fi în regulă.

În acest caz, problema pare să fie cauzată de sursa PHP.

Cu toate acestea, sursa PHP nu a identificat problema probabilă.

Încă o dată, am verificat php.ini pentru setări suspecte și am găsit o setare suspectă.

php.ini


mbstring.http_input = auto

Nu era clar dacă era codificat în UTF-8, deoarece era setat la auto, așa că a fost modificat după cum urmează pentru a încerca.

php.ini


mbstring.http_input = UTF-8

Ați rezolvat cu succes textul confuz.

Această setare este necesară pentru modulul mbstring atunci când se utilizează șiruri de caractere cu mai mulți octeți, cum ar fi japoneza în PHP.

Configurarea codificării cererilor http primite.

2. rezumat

Dacă apare un text confuz, încercați mai întâi să organizați fluxul de procesare.

Iar dacă vă confruntați cu caractere confuze atunci când utilizați PHP pentru a trece de la ecranul de introducere la ecranul de confirmare sau la alte tranziții de ecran, suspectați următoarele setări din php.ini.

Setarea implicită este "auto", deci verificați acest lucru atunci când utilizați mbstring pentru a procesa șiruri de caractere multibyte.

Vă mulțumim că ne-ați urmărit până la sfârșit.