Selaimella syötetyt arvot ovat epäselviä PHP-ohjelmissa


Julkaisupäivä:8. joulukuuta 2020.



INFOMARTION > Selaimella syötetyt arvot ovat epäselviä PHP-ohjelmissa

Yleiskatsaus.

PHP:ssä esiintyi epäselvää tekstiä, kun siirryttiin syöttöruudusta vahvistusruudulle.

Teksti on epäselvää, kun kirjoitat tekstiä lomakkeeseen ja siirryt vahvistusnäyttöön.

Epäselvää tekstiä esiintyy myös siirryttäessä omaan näyttöön syötteen tarkistusvirheiden vuoksi.

Koska palvelin oli juuri rakennettu, minusta tuntui, että PHP-konfiguraatiosta puuttui jotain, joten kuvaan, mitä sain selville tuolloin.


Sisällysluettelo

  1. tutkimus (jonkin asian syyn selvittäminen)
  2. yhteenveto

1. tutkimus (jonkin asian syyn selvittäminen)

Ongelman syyn selvittämiseksi tutkittiin seuraavia tietoja.

1-1. kyselytutkimus

Tarkista ensin PHP-asetukset (php.ini).

php.ini


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

Se on edellä kuvatun mukainen ja näyttää olevan kunnossa.

Sitten ongelma näyttää johtuvan PHP-lähteestä.

PHP-lähde ei kuitenkaan tunnistanut todennäköistä ongelmaa.

Tarkistin jälleen kerran php.ini:n epäilyttävien asetusten varalta ja löysin yhden epäilyttävän asetuksen.

php.ini


mbstring.http_input = auto

Oli epäselvää, oliko se koodattu UTF-8-koodilla, koska se oli asetettu automaattiseksi, joten se muutettiin seuraavasti, jotta sitä voitiin kokeilla.

php.ini


mbstring.http_input = UTF-8

Onnistuneesti ratkaistu sekava teksti.

Tämä asetus on tarpeen mbstring-moduulille, kun PHP:ssä käytetään monitavuisia merkkijonoja, kuten japania.

Vastaanotettujen http-pyyntöjen koodauksen määrittäminen.

2. yhteenveto

Jos teksti on epäselvää, yritä ensin järjestää käsittelyvirta.

Ja jos havaitset vääristyneitä merkkejä, kun käytät PHP:tä siirtyessäsi syöttönäytöstä vahvistusnäyttöön tai muihin näytön siirtymiin, epäile seuraavia asetuksia php.ini:ssä.

Oletusasetus on 'auto', joten tarkista tämä, kun käytät mbstringiä monitavuisten merkkijonojen käsittelyyn.

Kiitos, että katsoitte loppuun asti.