IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

POST_MAX_SIZE dépassé -> tableau $_POST vide


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut POST_MAX_SIZE dépassé -> tableau $_POST vide
    Bonjour,

    comment détecter proprement le dépassement de la taille max d'octets autorisée d'un formulaire ?
    Car je viens de remarquer que si l'utilisateur met une image de 12 Mo (<input type="file") avec une légende (<input type="text") avec un POST_MAX_SIZE configuré à 8Mo : le script qui reçoit le formulaire détecte $_POST et $_FILE étant vide !

    Quelle méthode devrais-je utiliser ?
    Merci d'avance

    @+

  2. #2
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Pas compris la question

    Tu veux faire quoi exactement?

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    mon script de réception doit vérifier les données provenant du formulaire.
    Il faut donc s'assurer que la photo et la légende sont bien renseignées.

    Pour le moment, avec une image de 12 Mo et la légende de renseignées, le script de réception affiche :
    La légende est manquante
    Le script en réception (simplifié) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	if ( isset($_POST['legende']) && ($_POST['legende'] != "") ) {
    		// ok
    	} else {
    		die("<p>La légende est manquante.</p>");
    	}
    	if ( isset($_FILES) && (count($_FILES) == 1) ) {
    		// ok
    	} else {
    		die("<p>La photo n'a pas été sélectionnée.</p>");
    	}
    cela à cause du dépassement de POST_MAX_SIZE...
    Je cherche donc à détecter ce cas de figure.


  4. #4
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    Ne faudrait-il pas se tourner du côté de javascript?

  5. #5
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    en terme de sécurité, javascript ne sert à rien...

  6. #6
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    oh, y a bien une astuce / méthode en php pour détecter ce cas de figure !

  7. #7
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Et en vérifiant avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['mon_fichier']['size']
    ?

  8. #8
    Membre habitué
    Avatar de savageman86
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Points : 199
    Points
    199
    Par défaut
    $_FILES['mon_fichier']['error'] plutôt.

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tailleMax = 8000000;
    if ($tailleMax < $_FILES['mon_fichier']['size'])
    {
    echo 'Le fichier est trop gros (+ de 8 Mo) !';
    }

  10. #10
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    je pense que vous n'avez pas compris... les variables $_POST et $_FILES sont vides lorsque le fichier dépasse la taille.

    Serais-ce un problème de configuration du serveur (de développement = WAMP) ? Car je trouve effectivement cela bizarre comme phénomène.


  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 123
    Points : 84
    Points
    84
    Par défaut
    Tu trouveras des réponses ici, notamment dans les commentaires:
    http://fr2.php.net/manual/fr/features.file-upload.php
    Ce qu'il faut retenir, c'est que ce comportement ($_POST vide quand le fichier uploadé est trop gros) est normal de la part de PHP, c'est ce qui est prévu en cas de dépassement de la valeur définie dans la directive post_max_size: le script ne s'exécute tout simplement pas, et PHP génère un warning.

Discussions similaires

  1. Tableau $_POST vide
    Par Général03 dans le forum Langage
    Réponses: 7
    Dernier message: 18/02/2010, 15h30
  2. Savoir quand une variable ou un tableau est vide
    Par cryptorchild dans le forum Langage
    Réponses: 1
    Dernier message: 17/02/2006, 08h40
  3. [Tableaux] Tableau valeur vide pour une clé
    Par hisy dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 11h49
  4. Comment détecter si un tableau est vide ?
    Par ErPi dans le forum Langage
    Réponses: 6
    Dernier message: 27/06/2005, 18h50
  5. [langage] tableau @ à vide
    Par pascal.cargouet dans le forum Langage
    Réponses: 2
    Dernier message: 18/10/2004, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo