Comment prévenir Avertissement: Contenu du POSTE-la Longueur et la taille de la mémoire
Actuellement, lorsque l'utilisateur télécharge une photo de la page dit "attention: Contenu POST-Longueur de XXX octets dépasse la limite de 21000000 octets in Unknown on line 0".
Je sais ce que cela signifie et je ne suis PAS à la recherche pour le solultions comme l'augmentation de la max_upload valeurs ou même memory_size_limit... Parce que les utilisateurs et les utilisateurs sera télécharger téraoctets de bêtises, même si vous l'avez explicitement leur dire que max 20 MO de fichiers et seules les images sont autorisées.
Je suis à la recherche d'une solution sur:
- Comment faire pour éviter cet avertissement(s) à même de se produire?
OU au moins: - Comment empêcher l'affichage de cet avertissement(s)?
EDIT: VEUILLEZ LIRE ! - S'il vous plaît comprendre que bien sûr, je suis de la manipulation de l'erreur/avertissement après (depuis la ligne 1) , le problème est ce qui se passe sur un virtuel sur la ligne "0" c'est pourquoi j'ai besoin de cacher l'erreur ou de l'empêcher d'augmenter - parce que je ne peux pas mettre tout le code avant de l'endroit où l'erreur se produit.
EDIT2: Enfin, après une très longue recherche et de creuser, j'ai eu une idée - il a travaillé à voir ma propre réponse.
Les utilisateurs peuvent et doivent se voir refuser par votre serveur web si ils envoient des demandes trop grand, pas en cachant une erreur due à l'épuisement de la mémoire. Mais si vous n'êtes pas à la recherche de solution sur la façon de le faire, alors pourquoi s'embêter avec de cacher le message?
Je sais, mais il y aura toujours quelqu'un qui va contourner le côté client de vérifier, je suis à la recherche pour le côté serveur de la solution
J'ai besoin de rattraper l'erreur dans le PHP à dire les utilisateurs "hey, vous êtes le téléchargement de trop" , mais le problème est ce qui se passe AVANT que le script... Si vous avez des solution comment faire?
C'est drôle comment tout le monde sur StackOverflow instantanément suppose que vous faites quelque chose de mal quand on pose une question comme ça. Malheureusement, dans de nombreux cas, ces personnes peuvent être correctes. Mais dans ce cas, ces gens devraient avoir rendu compte de la règle de base de requêtes HTTP qui s'applique ici: vous ne pouvez jamais faire confiance à ce que d'un navigateur/client vous envoie.
OriginalL'auteur jave.web | 2014-02-11
Vous devez vous connecter pour publier un commentaire.
Donc après une recherche au lieu de travailler aujourd'hui, j'ai enfin eu une idée comment résoudre ce problème, il a travaillé, et même na pas causer beaucoup de dégâts. Mais s'il vous plaît d'abord comprendre ce que vous faites, avant de le faire. 🙂 Comme je l'ai suggéré dans un de mes commentaires, il est vraiment possible de désactiver les erreurs PHP .htacess - il suffit de désactiver le PHP de démarrage des avertissements.
Avant d'appliquer la solution:
Noter que: après que vous insérez ce code sur votre .htaccess, vous ne serez pas en mesure de voir tout
erreur de démarrage
Également de noter: il y a plus de démarrage des erreurs sur la ligne "0".
Faire avant: Avant de faire cela, vous devez préparer votre script dans la façon dont il convient de vérifier le contenu téléchargé taille et donner à l'utilisateur un bon message d'information. Le fait que l'avertissement ne pas montrer NE PAS dire que vous ne pouvez rien faire à ce sujet. Il signifie l'EXACT oppos - vous devez faire tout que vous pouvez faire quelque chose au moins, de quasi-égalité à l'avertissement raise - vérifier, vérifier si vous pouvez gérer l'erreur et de l'élever votre propre message d'erreur.
Ajouter à votre .htaccess:
php_flag display_startup_errors off
Il n'est pas que le mal qu'il semble être:
Veuillez noter que cela permet de désactiver les erreurs de démarrage seulement.
De tous les erreurs PHP/avertissements/avis de séjours SUR 🙂
Même XAMPP PHP "lui-même", il recommande de production:
La
php.ini
fichier litéralement dit:PS: "erreur de démarrage" semble être de ces erreurs avant script PHP est exécuté lui-même - ces erreurs sont généralement essayer de "convaincre" vous qui ils sont sur la ligne 0.
Grâce à mon idée et cette réponse: Comment faire pour désactiver avis et d'alerte en PHP à l'intérieur .fichier htaccess?
EDIT: Que c'est un php_flag de configuration, vous pouvez bien sûr aussi le mettre par défaut dans votre php.ini si vous avez personnalisé l'installation de PHP 🙂
OriginalL'auteur jave.web
La question est
la réponse est, sans modifier toute valeur de configuration, mettez ce code au tout début du fichier qui va recevoir le formulaire pour être traités:
Qui est. Sans plus d'avertissement, ainsi rien d'autre que vous ne voulez pas de sortie sur votre page.
Après, comme le suggère d'ailleurs vous pouvez décider quoi faire avec:
Peut-être aussi de segmenter les fichiers, si dans une autre manière de passer les valeurs correctes à propos d'un fichier de traitement par Php.
comme expliqué ici Avertissement: le Contenu POST-Longueur ...
OriginalL'auteur axew3
J'ai un problème similaire à vous, et je me demandais si vous aviez trouvé une solution satisfaisante. Actuellement, mon PHP Warning: Contenu POST-Longueur de 21010354 octets dépasse la limite de 8388608' est dans le journal, et je ne pense pas qu'il y est beaucoup que je peux faire à ce sujet.
J'ai travailler au sein d'un framework Zend, et lorsqu'un utilisateur télécharge un fichier comme ci-dessus, il tue tous le POSTE habituel de données de l'analyse, de sorte que la réponse à getParams() contient aucun POSTE habituel de paramètres. Cela signifie que les utilisateurs est d'obtenir une erreur de validation, se disant l'un des champs est manquant, ce qui est trompeur.
Dans cette recherche, j'ai trouvé un peu intéressant php_ini paramètres que vous voudrez peut-être consulter, notamment enable_post_data_reading et always_populate_raw_post_data. Dans mon cas, je suis en téléchargeant une de 20M de fichier, avec un 8M post max et 10M fichier téléchargé max, et le résultat de php://input semble être un plein sur 20M de fichier, même si le post de données est maintenant vide.
Je vais donc vérifier manuellement si les données brutes dépasse la limite, et suppose que tout a échoué si il l'a fait (et caution). Je suggère que vous pourriez écrire votre propre code pour parser les données brutes, pour remplir le $_POST données. Ensuite, vous pouvez démarrage de votre code, comme vous le souhaitez, et seulement quand vous êtes prêt, vérifier si l'utilisateur a téléchargé plus de données que la limite. C'est à vous, pour ensuite retourner une erreur avant l'analyse, ou si c'est ok, pour l'analyser. Aussi longtemps que vous le définissez le PHP poste et des limites de chargement, au-dessus de votre limite de l'utilisateur, il doit permettre à l'utilisateur de briser les règles, permettant à votre code afin de détecter la culasse et en plaindre.
OriginalL'auteur sibaz
Ici est la VRAIE solution pour éviter cette erreur correctement.
Définir ces paramètres dans votre php.ini :
Avertissement : assurez-vous d'avoir cette ligne dans votre formulaire de
ET le PLUS IMPORTANT :
assurez-vous de vérifier les erreurs dans le code de la variable $_FILES['fichier']['error']
assurez-vous de vérifier la taille de votre upload en PHP trop
enable_post_data_reading
est activé par défaut (Off serait de dire qu'il n'y aurait pas de $_POST et $_FILES peuplée) et le réglage de la dernière 2 à 0 permet de désactiver le serveur de la couche-limite, de manière à ce que vous êtes fondamentalement permettant de les mettre dans des processus, des fichiers de TOUTE taille...OriginalL'auteur Romain GALVEZ
Comme vous l'avez déjà constaté par vous-même, il est impossible de le faire en PHP, PHP ne peut intercepter les erreurs de la ligne 1 à partir.
Le seul moyen serait de creuser dans le code source PHP, trouver où cette erreur est générée et de supprimer cette partie de PHP sources avant de compiler votre costume de version de php.
Mais soyez averti que le message d'erreur est envoyé pour une raison.
OriginalL'auteur Alexander
Pour Éviter cette erreur arrive, vous devez vérifier la taille des fichiers téléchargés avant et dans le cas où ils sont en grand vous devez annuler le téléchargement!
Simplement de ne pas les montrer, je pense qu'il devrait être suffisant si vous écrivez dans votre script php
OriginalL'auteur Martin
1.Vous pouvez vérifier la taille du fichier avant de le télécharger en JavaScript, mais cela peut être modifié !
2.Vérifiez la taille du fichier après téléchargé et avant de l'enregistrement du fichier.
3.Ne pas tenter de masquer les erreurs de résoudre le problème.
C'est un avertissement. Pas d'erreur (mais désolé, j'ai fait cette faute de frappe d'abord j'ai du confondre vous). J'ai l'habitude de ne pas le faire, mais dans ce cas il n'y a aucun moyen de les prévenir (en plus de la recompilation de PHP). Afin de les cacher et de résoudre le problème par vous-même semble être mieux.
Sa ne peut pas vérifier comme vous l'avez dit.
OriginalL'auteur CS GO