Door browser ingevoerde waarden worden vervormd in PHP-programma's


Datum van publicatie:8 december 2020.



INFOMARTION > Door browser ingevoerde waarden worden vervormd in PHP-programma's

Overzicht.

Er verscheen vervormde tekst bij het overgaan van het invoerscherm naar het bevestigingsscherm in PHP.

Tekst wordt vervormd wanneer tekst in het formulier wordt ingevoerd en naar het bevestigingsscherm wordt gegaan.

Vervormde tekst komt ook voor bij de overgang naar het eigen scherm als gevolg van fouten bij de invoercontrole.

Aangezien de server net gebouwd was, had ik het gevoel dat er iets ontbrak in de PHP configuratie, dus ik zal beschrijven wat ik toen ontdekte.


Inhoudsopgave

  1. onderzoek (om de oorzaak van iets te achterhalen)
  2. samenvatting

1. onderzoek (om de oorzaak van iets te achterhalen)

De volgende informatie werd onderzocht om de oorzaak van het probleem te achterhalen.

1-1. enquête

Controleer eerst de PHP instellingen (php.ini).

php.ini


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

Het is zoals hierboven beschreven en lijkt in orde te zijn.

Dan lijkt het probleem te worden veroorzaakt door de PHP bron.

De PHP-bron gaf echter niet aan wat het waarschijnlijke probleem was.

Nogmaals, ik controleerde de php.ini voor verdachte instellingen en vond één verdachte instelling.

php.ini


mbstring.http_input = auto

Het was onduidelijk of het in UTF-8 gecodeerd was omdat het op auto stond, dus werd het als volgt gewijzigd om het uit te proberen.

php.ini


mbstring.http_input = UTF-8

Succesvol opgelost verminkte tekst.

Deze instelling is nodig voor de mbstring module bij het gebruik van multibyte strings zoals het Japans in PHP.

Configuratie van de encoding van ontvangen http verzoeken.

2. samenvatting

Als de tekst verminkt is, probeer dan eerst de verwerkingsstroom te organiseren.

En als u last hebt van vervormde tekens wanneer u PHP gebruikt om over te schakelen van het invoerscherm naar het bevestigingsscherm of andere schermovergangen, verdenk dan de volgende instellingen in php.ini.

De standaardinstelling is 'auto', dus controleer dit als je mbstring gebruikt om multibyte strings te verwerken.

Bedankt voor het kijken tot het einde.