PHP programmās tiek izkropļotas pārlūkprogrammā ievadītās vērtības


Publikācijas datums:2020. gada 8. decembris.



INFOMARTION > PHP programmās tiek izkropļotas pārlūkprogrammā ievadītās vērtības

Pārskats.

Pārvietojoties no ievades ekrāna uz PHP apstiprinājuma ekrānu, parādījās sajaukts teksts.

Ievadot tekstu veidlapā un pārejot uz apstiprinājuma ekrānu, teksts tiek izkropļots.

Garbled teksts rodas arī pārejot uz savu ekrānu ievades pārbaudes kļūdu dēļ.

Tā kā serveris bija tikko uzbūvēts, man šķita, ka PHP konfigurācijā kaut kā trūkst, tāpēc es aprakstīšu, ko es toreiz atklāju.


Saturs

  1. izmeklēšana (lai noskaidrotu kāda notikuma cēloni)
  2. kopsavilkums

1. izmeklēšana (lai noskaidrotu kāda notikuma cēloni)

Lai noskaidrotu problēmas cēloni, tika pārbaudīta šāda informācija.

1-1. apsekojums

Vispirms pārbaudiet PHP iestatījumus (php.ini).

php.ini


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

Tas ir tā, kā aprakstīts iepriekš, un šķiet, ka viss ir kārtībā.

Tad problēmu, šķiet, rada PHP avots.

Tomēr PHP avots neidentificēja iespējamo problēmu.

Vēlreiz, Es pārbaudīju php.ini par aizdomīgiem iestatījumiem un atradu vienu aizdomīgu iestatījumu.

php.ini


mbstring.http_input = auto

Nebija skaidrs, vai tas ir kodēts UTF-8 formātā, jo bija iestatīts automātiskais iestatījums, tāpēc tas tika mainīts šādi, lai to izmēģinātu.

php.ini


mbstring.http_input = UTF-8

Veiksmīgi atrisināts izkropļots teksts.

Šis iestatījums ir nepieciešams modulim mbstring, ja PHP tiek izmantotas daudzbitu virknes, piemēram, japāņu valodā.

Saņemto http pieprasījumu kodēšanas konfigurēšana.

2. kopsavilkums

Ja rodas teksta izkropļojumi, vispirms mēģiniet sakārtot apstrādes plūsmu.

Ja, izmantojot PHP, pārejot no ievades ekrāna uz apstiprinājuma ekrānu vai citām ekrāna pārejām, rodas izkropļotas rakstzīmes, ir aizdomas par šādiem php.ini iestatījumiem.

Noklusējuma iestatījums ir 'auto', tāpēc pārbaudiet šo iestatījumu, ja lietojat mbstring, lai apstrādātu daudzbitu virknes.

Paldies, ka noskatījāties līdz beigām.