Οι τιμές που εισάγονται από το πρόγραμμα περιήγησης αλλοιώνονται σε προγράμματα PHP


Ημερομηνία δημοσίευσης:8 Δεκεμβρίου 2020.



INFOMARTION > Οι τιμές που εισάγονται από το πρόγραμμα περιήγησης αλλοιώνονται σε προγράμματα PHP

Επισκόπηση.

Εμφανίστηκε αλλοιωμένο κείμενο κατά τη μετάβαση από την οθόνη εισαγωγής στην οθόνη επιβεβαίωσης στην PHP.

Το κείμενο αλλοιώνεται κατά την εισαγωγή κειμένου στη φόρμα και τη μετάβαση στην οθόνη επιβεβαίωσης.

Εμφανίζεται επίσης αλλοιωμένο κείμενο κατά τη μετάβαση στη δική σας οθόνη λόγω σφαλμάτων ελέγχου εισόδου.

Καθώς ο διακομιστής είχε μόλις κατασκευαστεί, ένιωσα ότι κάτι έλειπε από τη διαμόρφωση της PHP, οπότε θα περιγράψω τι ανακάλυψα τότε.


Πίνακας περιεχομένων

  1. έρευνα (για να προσδιοριστεί η αιτία κάποιου γεγονότος)
  2. περίληψη

1. έρευνα (για να προσδιοριστεί η αιτία κάποιου γεγονότος)

Για τη διερεύνηση της αιτίας του προβλήματος ερευνήθηκαν οι ακόλουθες πληροφορίες.

1-1. έρευνα

Αρχικά, ελέγξτε τις ρυθμίσεις της PHP (php.ini).

php.ini


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

Είναι όπως περιγράφεται παραπάνω και φαίνεται να είναι εντάξει.

Τότε το πρόβλημα φαίνεται να προκαλείται από την πηγή PHP.

Ωστόσο, η πηγή PHP δεν προσδιόρισε το πιθανό πρόβλημα.

Για άλλη μια φορά, έλεγξα το php.ini για ύποπτες ρυθμίσεις και βρήκα μια ύποπτη ρύθμιση.

php.ini


mbstring.http_input = auto

Δεν ήταν σαφές αν ήταν κωδικοποιημένο σε UTF-8 επειδή είχε οριστεί σε auto, οπότε άλλαξε ως εξής για να το δοκιμάσουμε.

php.ini


mbstring.http_input = UTF-8

Επιλύθηκε επιτυχώς το αλλοιωμένο κείμενο.

Αυτή η ρύθμιση είναι απαραίτητη για την ενότητα mbstring όταν χρησιμοποιούνται συμβολοσειρές πολλαπλών byte όπως τα ιαπωνικά στην PHP.

Διαμόρφωση της κωδικοποίησης των λαμβανόμενων αιτήσεων http.

2. περίληψη

Αν εμφανιστεί αλλοιωμένο κείμενο, προσπαθήστε πρώτα να οργανώσετε τη ροή επεξεργασίας.

Και αν αντιμετωπίζετε αλλοιωμένους χαρακτήρες κατά τη χρήση της PHP για τη μετάβαση από την οθόνη εισαγωγής στην οθόνη επιβεβαίωσης ή άλλες μεταβάσεις οθόνης, υποψιαστείτε τις ακόλουθες ρυθμίσεις στο αρχείο php.ini.

Η προεπιλεγμένη ρύθμιση είναι 'auto', οπότε ελέγξτε το όταν χρησιμοποιείτε το mbstring για την επεξεργασία συμβολοσειρών πολλαπλών byte.

Σας ευχαριστούμε που παρακολουθήσατε μέχρι το τέλος.