Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 15h02   #1
Membre à l'essai
 
Inscription : novembre 2009
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 91
Points : 20
Points : 20
Par défaut Variables POST perdues -> nombre max ?

Bonjour à tous,

Pour une appli web scientifique, j'ai un giga formulaire qui ramène plus de 1000 variables POST.

Lors de test, je m'aperçois que le serveur tronque le tableau $_POST à environ 950 variables (ce n'est pas régulier). J'ai modifié le php.ini pour un post_max_size à 16 Mo au lieu de 8Mo (ce qui est déjà énorme, il n'y a pas de fichier, juste quelques caractères par variables).

Mon problème ressemble à celui-ci, mais l'auteur n'indique pas quelle extension limitait le nombre de variables.

Une idée ?

Merci d'avance,
Chello est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 16h57   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

je ne sais pas si cela pourrais t'aider ni si cela marche mais tu pourrais peut être en envoyer la moitié via la méthode post et l'autre moitié via la méthode get (je ne connais pas la limite de get).

voila c'était juste une idée mais je ne sais pas vraiment si ca pourrai marcher...
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 18h52   #3
Membre à l'essai
 
Inscription : novembre 2009
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 91
Points : 20
Points : 20
Mmh... Les limites du GET dépendent des navigateurs.

C'est peut-être possible, mais disons que ce sera la rustine temporaire d'urgence. Je préfère résoudre la question du POST.
Chello est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 20h35   #4
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
bonjour

tente un message privé. sinon desactive tes extensions une a une ... et tu seras à l'abris de rien.

je vois bien un workaround avec un peu d'ajax...
je suis sur qu'un formulaire de 1000 champs c'est imbitable y compris pour un Scientifique. tu peux faire une configuration en 4 ou 5 pages avec navigations dans les pages et sauvegarde des variables non affichées dans $_SESSION.

une url a un nombre de caractère maximum, comme tout ici bas. il est assez élevé mais avoir des liens qui pèse à l'url seule 20k c'est stupide.

En plus une présentation plus réfléchies -> plus facile à lire
plus facile à lire -> moins d'erreur
moins d'erreur -> plus de résultats
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/07/2011, 10h39   #5
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Bonjour,
Je ne sais pas de quel type de formulaire il s'agit, mais faisant aussi pas mal de formulaires à caractères scientifiques, il n'est pas rare de devoir rapatrier plus de 1000 champs, comme par exemple une sélection de séquences.
Je viens de refaire un test sur une de mes applis et je récupère sans problème 1380 données en POST.
Dans mon cas, il s'agit de données complètement homogènes. Mes champs passés en post sont du type :
Code :
1
2
 
<input type="checkbox" name="tableau[id_sequence]">
La récupération se fait ensuite comme suit :
Code :
1
2
3
4
 
<?php
$tab=$_POST['tableau'];
?>
Apres je ne sais pas si le comportement est le même avec d'autre types d'input ou si il existe un millier de noms de variables à récupérer au lieu d'un seul....

A noter aussi ma config :
Apache (es-tu sous IIS ?) / PHP5 sous Centos

Je n'ai rien vu dans le php.ini, ni dans httpd.conf et autres .conf qui correspondrait à un nombre maximum de variables pouvant passer... mais je ne suis pas experte dans ce domaine non plus !

Bon courage,

Sohnic
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 11h52   #6
Membre à l'essai
 
Inscription : novembre 2009
Messages : 91
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 91
Points : 20
Points : 20
Merci de vos réponses.

Gene69 (génération 69 ?), qu'appelles-tu "message privé" ?

Il est effectivement possible de découper le formulaire, mais c'est franchement pas top, et pas plus facile à lire dans mon cas.

Sinon, oui, il me restera à mettre de l'Ajax pour valider chaque donnée lors de la sortie de champs texte ou onselect.... Je m'y prépare, ça a son intérêt mais c'est quand même un poil plus compliqué.

Pour le reste, je suis sous Apache / Mandriva.

Aucune idée des extensions qui peuvent être à l'origine de ce bug ?
Chello est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 10h44   #7
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Bonjour,
Non, toujours aucune idée...
Le bug est peut-être ailleurs... As-tu regardé les logs d'erreurs d'apache (et ceux d'accès aussi d'ailleurs) ?

N'étant pas dans ton script c'est dur de voir ce qui peut clocher. Par exemple, procèdes-tu à des insertions en bases de données, sans avoir escapé les apostrophes, et sans die if mysql_error() suivant tes requêtes.
Affiches-tu les erreurs de tes scripts, ou ton php.ini l'empêche ?

S.
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 00h02   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Je remonte ce post vieux de plusieurs mois car je suis tombé dessus en cherchant les éventuelles limitations des post par ajax.

Comme cité dans le lien du premier message de ce topic, certains modules peuvent permettre la limitation du nombre de post php, et c'est le cas pour le module suhosin, par exemple :

suhosin.post.max_vars = 1000
suhosin.request.max_vars = 1000

Il existe peut-être maintenant l'équivalent avec les dernières versions php, mais n'étant pas spécialiste de l'administration serveur je ne peux pas vous en dire plus.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h25.


 
 
 
 
Partenaires

Hébergement Web