Brauseri sisestatud väärtused on PHP-programmides moonutatud


Avaldamise kuupäev:8. detsember 2020.



INFOMARTION > Brauseri sisestatud väärtused on PHP-programmides moonutatud

Ülevaade.

PHP-siseselt sisestusekraanilt kinnitusekraanile üleminekul tekkis moonutatud tekst.

Tekst on segane, kui sisestate teksti vormi ja liigute kinnitusekraanile.

Ebaõige tekst tekib ka oma ekraanile üleminekul sisendkontrolli vigade tõttu.

Kuna server oli äsja ehitatud, tundsin, et PHP-konfiguratsioonis on midagi puudu, nii et kirjeldan, mida ma tol ajal avastasin.


Sisukord

  1. uurimine (millegi põhjuse kindlakstegemine)
  2. kokkuvõte

1. uurimine (millegi põhjuse kindlakstegemine)

Probleemi põhjuse uurimiseks uuriti järgmist teavet.

1-1. uuring

Kõigepealt kontrollige PHP seadeid (php.ini).

php.ini


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

See on nagu eespool kirjeldatud ja tundub olevat korras.

Siis tundub, et probleemi põhjuseks on PHP-allikas.

PHP allikas ei tuvastanud siiski tõenäolist probleemi.

Veelkord kontrollisin php.ini'd kahtlaste seadete suhtes ja leidsin ühe kahtlase seadistuse.

php.ini


mbstring.http_input = auto

Oli ebaselge, kas see oli kodeeritud UTF-8-ga, sest see oli seatud automaatseks, seega muudeti seda proovimiseks järgmiselt.

php.ini


mbstring.http_input = UTF-8

Edukalt lahendatud moonutatud tekst.

See seadistus on vajalik mbstringi mooduli jaoks, kui PHP-s kasutatakse mitmetahulisi stringisid, näiteks jaapani keelt.

Vastuvõetud http-päringute kodeerimise konfigureerimine.

2. kokkuvõte

Kui tekst on segane, proovige kõigepealt korraldada töötlemisvool.

Ja kui teil tekivad moonutatud tähemärgid, kui te kasutate PHP-d sisestusekraanilt kinnitusekraanile üleminekuks või muudeks ekraani üleminekuteks, siis kahtlustage järgmisi seadistusi php.ini failis.

Vaikimisi seade on 'auto', seega kontrollige seda, kui kasutate mbstringi mitmebaidiliste stringide töötlemiseks.

Aitäh, et vaatasite kuni lõpuni.