Hodnoty zadané prohlížečem jsou v programech PHP zkreslené
Datum vydání:8. prosince 2020.
INFOMARTION > Hodnoty zadané prohlížečem jsou v programech PHP zkreslené
Přehled.
Při přechodu ze vstupní obrazovky na potvrzovací obrazovku v jazyce PHP docházelo ke zkreslenému textu.
Při zadávání textu do formuláře a přechodu na potvrzovací obrazovku dochází ke zkreslení textu.
Ke zkreslenému textu dochází také při přechodu na vlastní obrazovku v důsledku chyb kontroly vstupu.
Protože byl server právě postaven, měl jsem pocit, že v konfiguraci PHP něco chybí, a tak popíšu, co jsem tehdy zjistil.
Obsah
1. vyšetřování (zjišťování příčiny něčeho)
Při zkoumání příčiny problému byly prověřeny následující informace.
1-1. průzkum
Nejprve zkontrolujte nastavení PHP (php.ini).
default_charset = "UTF-8"
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
Je to tak, jak je popsáno výše, a zdá se, že je v pořádku.
Pak se zdá, že problém je způsoben zdrojem PHP.
Zdroj PHP však pravděpodobný problém neidentifikoval.
Opět jsem zkontroloval php.ini na podezřelá nastavení a našel jsem jedno podezřelé nastavení.
mbstring.http_input = auto
Nebylo jasné, zda je kódován v UTF-8, protože byl nastaven na automatický, takže byl změněn takto, aby se to vyzkoušelo.
mbstring.http_input = UTF-8
Úspěšně vyřešeno zkomolení textu.
Toto nastavení je nezbytné pro modul mbstring při používání vícebajtových řetězců, například japonštiny v PHP.
Konfigurace kódování přijatých požadavků http.
2. shrnutí
Pokud se objeví zkreslený text, pokuste se nejprve uspořádat tok zpracování.
Pokud se při přechodu ze vstupní obrazovky na potvrzovací obrazovku nebo při jiných přechodech mezi obrazovkami objevují zkomolené znaky, podezřívejte následující nastavení v souboru php.ini.
Výchozí nastavení je 'auto', proto jej při použití mbstring ke zpracování vícebajtových řetězců zkontrolujte.
Děkujeme, že jste se dívali až do konce.