Maison > développement back-end > Problème PHP > Que faire si les données soumises par le formulaire php sont perdues

Que faire si les données soumises par le formulaire php sont perdues

藏色散人
Libérer: 2023-03-02 12:00:02
original
3251 Les gens l'ont consulté

Solution à la perte de données PHP : vérifiez d'abord l'intégrité de la demande de soumission du formulaire ; puis vérifiez si les données de la demande dépassent la limite PHP ou nginx ; puis obtenez la demande originale directement via "file_get_contents('php:// ; input')" Données ; dernière quantité max_input_var modifiée.

Que faire si les données soumises par le formulaire php sont perdues

Problème de perte de données lors de la soumission du formulaire PHP

Aujourd'hui, j'ai rencontré un petit problème lors du traitement de l'importation Excel de l'utilisateur

Les exigences sont les suivantes : après que l'utilisateur a importé Excel, utilisez PHPExcel pour lire les données importées, afficher un formulaire, et l'utilisateur vérifie le formulaire pour confirmer l'intégrité des données importées, et confirme enfin l'entrée dans le base de données.

Que faire si les données soumises par le formulaire php sont perdues

Cependant, étant donné que l'utilisateur importe beaucoup de données dans Excel, il y a plus de 6 000 entrées après le rendu du formulaire, et la soumission du formulaire (POST) est directement utilisé, ce qui fait que l'arrière-plan ne peut être lu qu'une petite partie des données précédentes.

Suivi

1. Vérifiez l'intégrité de la demande de soumission du formulaire

En suivant la requête http lors de la soumission, il a été constaté que toutes les données étaient soumis normalement.

2. Vérifiez si les données de la requête dépassent la limite php ou nginx.

En regardant la longueur du contenu sous les en-têtes de requête, il s'avère qu'il ne s'agit que de 218 558 B, soit environ 20 Ko. . Cela ne respecte certainement pas la limite.

3. Obtenez les données de la demande d'origine directement via file_get_contents('php://input')

Étant donné que seule une petite partie des données est obtenue directement à l'aide de $_POST, utilisez php:/ / directement. L'entrée obtient les données d'entrée originales lors de l'impression, il s'avère que les données obtenues par ce type d'envoi sont complètes.

4. Analysez les paramètres de la requête d'origine via la fonction parse_str

Lorsque j'analyse les données d'entrée d'origine avec parse_str

...
$origin = file_get_contents('php://input');
parse_str($origin, $result);
var_dump($result);
Copier après la connexion

J'ai une erreur

Warning: parse_str(): Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini
Copier après la connexion

À ce stade, je devrais comprendre quel est le problème.

5. Modifiez le nombre de max_input_var dans php.ini

# 默认的 php.ini 配置
# How many GET/POST/COOKIE input variables may be accepted
# max_input_vars = 10000
Copier après la connexion

La configuration par défaut autorise uniquement le nombre maximum d'entrées pour les requêtes (GET/POST/COOKIE) à 1000.

Après avoir modifié de manière appropriée la valeur de max_input_var dans php.ini, le problème est résolu.

Bien sûr, la solution finale était de soumettre les données au format json via ajax. Après tout, modifier la configuration de php.ini n'est toujours pas idéal !

Fin

Parce que je n'ai pas remarqué que PHP a cette limitation, j'ai renversé ici

Pour plus de connaissances connexes, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal