variable array se limite - PHP - Programmation
Marsh Posté le 21-08-2007 à 08:33:48
est-ce que ça serait pas lié au fait que les données envoyées en get ou post sont limitées à 2ko?
Marsh Posté le 21-08-2007 à 12:08:19
Voyant le nombre de caractère passé, ça y ressemble. Je ne connais pas encore le moyen de modifier cela mais est ce possible uniquement dans cette partie du programme? Je veux dire simplement autorisé un plus grand espace seulement pour cette fonction dans le programme?
Merci.
Marsh Posté le 21-08-2007 à 12:25:41
Salut,
La limite en POST est en général bien plus élevée (sauf réglage perso dans le httpd.conf d'apache), donc regarde si t'as bien mis <form method="post" action=" ...."> (que tu n'aies pas oublié le method="post" en fait).
a +
Marsh Posté le 21-08-2007 à 13:32:07
Cette formule fonctionnait avec apache1. Elle fonctionne toujours avec apache2 mais se trouve limitée. Voila la ligne recherchée:
<form align="center" action="vue_liste.php" name="liste" method="POST" >
J'ai rajouté ceci dans httpd.conf au niveau de <Directory>
<Directory>
<Limit GET POST OPTIONS PROPFIND> |
</Directory>
Ca ne change rien. Peut être ai je mal fais !
Marsh Posté le 21-08-2007 à 16:19:49
et que t'affiches phpinfo() concernant la valeur de post_max_size et upload_max_filesize?
Marsh Posté le 21-08-2007 à 18:39:15
Ils sont tous les deux à 8M
Marsh Posté le 22-08-2007 à 09:31:54
Yes
Marsh Posté le 22-08-2007 à 10:20:23
Je trouve ça dans les logs d'apache:
ALERT - configured POST variable limit exceeded
Ca veut dire que c'est trop large ou trop restrictif?
Excusez moi mais l'anglais et moi
Ca voudrait dire peut être que ce qui est écrit 5 post plus haut n'est pas valable...
Marsh Posté le 22-08-2007 à 10:54:13
tu pourrais nous montrer le résultat d'un phpinfo(). Y'a peut-être d'autres trics qui limitent...
Marsh Posté le 22-08-2007 à 12:22:12
ok
PHP Logo <http://www.php.net/> |
Marsh Posté le 22-08-2007 à 14:48:52
je dois avouer que je vois pas trop ce qui peut bloquer ...
Marsh Posté le 22-08-2007 à 16:37:03
Moi non plus. C'est tout l'objet de l'ouverture de ce topic.
En plus je ne suis pas informaticien.
Cependant les logs et les faits sont pourtant bien là....
Je te remercie de ton aide rufo j'espère que quelqu'un saura !
Marsh Posté le 22-08-2007 à 23:57:08
Vu que personne n'a l'air d'y voir quelque chose et que j'ai donc la flemme de revoir tout ça vous faisant confiance, tu voudrais pas installer un apache 1.3 pour vérifier que tu aurais pas fait une modif que tu crois innocente mais qui bloque tout?
C'est quoi ton histoire de fichier de variables?
Apparement ça tient plus d'apache qu'autre chose... Mais le doute d'une modif à la con (genre sur un script, la version de php, php.ini)
La plateforme c'est quoi: OS, version, package si unix/linux, code de la partie qui récupère les données, version mysql, version php...
Tous les changements même qui semblent minimes depuis que ça déconne
Marsh Posté le 23-08-2007 à 09:01:40
dans sa capture du phpinfo(), y'a toutes infos que tu demandes leflo5 -> Apache/2.2.4 (Mandriva Linux/PREFORK-6.2mdv2007.1)
mysql 5.0.37
PHP Version 5.2.1
Marsh Posté le 23-08-2007 à 14:10:30
J'avais pas fait attention, heure tardive
Je pense que cette ligne y est pour quelque chose, non?
Code :
|
Ses copines pour get et post à l'occasion aussi
Marsh Posté le 23-08-2007 à 14:41:45
c'est quoi cette extension suhosin Jamais entendu parlé...
Marsh Posté le 23-08-2007 à 14:43:18
Moi non plus avant, suffit de suivre le lien du phpinfo()
Une extension de protection de php
Marsh Posté le 24-08-2007 à 08:32:58
Moi non plus je ne connaissais pas.
Comment le modifie t-on ?
est-il possible de l'hiniber juste à cet endroit du programme?
Marsh Posté le 24-08-2007 à 09:09:01
php a été compilé avec cette extension? Si oui, ben faut recompiler sans elle.
Perso, j'ai jamais eu à ajouter/enlever des extensions pour php sous Linux (que sous windows). Est-ce-que dans le php.ini, y'aurait pas par hasard une ligne dans la section des extensions du genre suhosin0.9.18.so? Si oui, y'a qu'à mettre un ; devant cette ligne et relancer apache (en tout cas, c'est comme ça qu'on fait sous windows avec les dll).
Marsh Posté le 24-08-2007 à 13:28:32
Soit tu désactives tout, soit tu montes ces valeurs dans le php?ini pour voir si c'est bien ça
Tu peux tenter en tête de ton fichier
Code :
|
Sinon c'est pas mal comme truc, sauf si c'est pour développer et se casser les pieds avec Y'a plus qu'à lire et adapter http://www.hardened-php.net/suhosin/configuration.html
Marsh Posté le 24-08-2007 à 13:54:11
httpd.conf fait reference à ça
http://httpd.apache.org/docs/2.0/mod/core.html#options
mais il n'y a rien par rapport à suhosin dans ce fichier.
Je dois aller travailler.je tenterai le dernier point tout à l'heure.
Marsh Posté le 24-08-2007 à 14:15:47
rufo a écrit : est-ce que ça serait pas lié au fait que les données envoyées en get ou post sont limitées à 2ko? |
normalement y'a pas de limite de taille pour le POST. la preuve, on peut envoyer des fichiers avec
par contre effectivement la limite est très basse.
Marsh Posté le 24-08-2007 à 14:21:42
c'est quoi ces modules d'abrutis ?
les devs sont pas capable de vérifier eux même qu'ils ne reçoivent pas n'improte quoi ?
l'hallu totale. bourdel que c'est une merde infâme ce php...
Marsh Posté le 24-08-2007 à 14:50:29
MagicBuzz > Arrête de jouer au gros troll poilus trop visible ( je sais on est vendredi) j'ai l'impression de lire un forum de jeux vidéo.
Essaye le troll subtil (y a matière en php. )
Marsh Posté le 24-08-2007 à 15:05:30
Bah là c'est qu'à moitié un troll quand même...
Après MagicQuote, voici Suhosin...
Ils savent plus quoi inventer pour faire en sorte que PHP se comporte de base de la façon la plus incohérente possible.
Faut pas pousser mémé dans les orties, c'est comme si tout à coup PHP ne supportait plus les ' comme délimiteur de chaînes.
Tu mets à jour ton serveur, sans changer de numéro de release (juste la sous-release) et ça ne marche plus comme avant.
Sous Windows, on appelle ça un bug.
Que des crétins développent des modules de merde qui modifient le comportement du serveur, histoire de faire en sorte qu'un hamster arrive à écrire un site inhackable, c'est très bien.
Mais de là à les intégrer et les activer d'office dans la version suivante du même numéro de version, c'est la fête du slip, et y'a pas de façon subtile de le dire.
Marsh Posté le 24-08-2007 à 15:22:21
MagicBuzz > Si c'est intégré d'office, c'est que le bonhomme qui gère le serveur n'a pas pris une version officielle mais un fork fait par l'équipe d' "hardened". Je ne vois pas en quoi les développeurs de la version officielle serait en cause.
PS : Tu vois, quand tu veux tu peux faire du troll un peu plus subtil.
Marsh Posté le 24-08-2007 à 15:25:45
ah ben s'il a pas pris une version officielle, faut pas qu'il vienne pleurer après parceque ça marche pas aussi
c'est comme les gars qui viennt sur SR avec le Windows piraté et disent "ah ben ouais mais je comprends pas, je peux pas installer tel soft qui nécessite le SP2 mais je peux pas installer le SP2 comment je fais ?"
=> achète une licence ducon, et reviens plus tard.
bref, quand on utilise un produit, faut pas aller chercher le premier truc moisi qui traîne sur le premier ftp pourri trouvé. on prend la version officielle avant de commencer à se dire que "ah ouais mais en fait si je mets ça en plus et en ça en moins c'est mieux". pas l'inverse
Marsh Posté le 24-08-2007 à 16:07:04
Ca y est je viens refaire une incurtion avant de repartir.
Je viens d'essayer ta proposition leflos5 mais voilà le résultat.
# service httpd start |
Marsh Posté le 24-08-2007 à 16:14:05
MagicBuzz a écrit : ah ben s'il a pas pris une version officielle, faut pas qu'il vienne pleurer après parceque ça marche pas aussi |
Ma version est tout à fait officielle et est distribuée par mandriva dans leurs packages. Pourquoi ferais je du barbare sous linux alors qu'il n'y a pas lieu... .
Marsh Posté le 24-08-2007 à 16:16:23
ben alors donc mandriva c'est des gros branques, et t'as qu'à passer sous debian
Marsh Posté le 24-08-2007 à 16:19:12
thierryR a écrit : Ca y est je viens refaire une incurtion avant de repartir.
|
ini_set() est une commande php
Marsh Posté le 24-08-2007 à 16:20:13
Master p a écrit : ini_set() est une commande php |
j'osais rien dire, ça m'étonnais aussi que ce soit dans le httpd.conf
Marsh Posté le 24-08-2007 à 16:25:07
Mandriva comme debian ne font rien au niveau developpement du php. Ils font seulement de la diffusion. Ca m'étonnerait qu'en changeant de distrib, le problème se trouve miraculeusement réglé. Ca change seulement de présentation. Au lieu de RPM tu as des paquets, mais pour le reste je suis sceptique.
Marsh Posté le 24-08-2007 à 16:30:43
ben nan, mandriva tout comme debian tout comme tous les autres bidouillent les releases officiels pour les modifier à leur sauce.
donc si omega2 le dit, c'est pas activé par défaut sur la distrib officielle, c'est que c'est mandriva qui l'a ajouté.
Marsh Posté le 24-08-2007 à 16:35:28
Master p a écrit : ini_set() est une commande php |
Je l'ai essayé dans le script mais rien n'y fait.
Marsh Posté le 24-08-2007 à 17:47:53
Vu sur le "Hardened-PHP Project forum" ( http://forum.hardened-php.net/viewtopic.php?pid=898 ) :
Citation : Hello. |
Si j'ai bien tout compris, Mandriva a bien intégré des versions Hardened et non la distribution officielle.
Sur le site www.howtoforge.com, ils indiquent également que c'est aussi le cas du PHP5 fournis dans la distrib "Mandriva 2007 Spring". Sur ce même site on voit aussi des captures d'écrans correspondant au résultat d'un phpinfo et on y lit :
"This server is protected with the Suhosin patch 0.9.6.2
Copyright(c) 2006 Hardened-PHP-Project".
Si t'obtient ça en mettant l'instruction "phpinfo();" dans un fichier php, il n'y aura plus aucun doute : ta version de php est une version Hardened.
A noter que mandriva utilisait déjà des versions php-Hardener en 2005 mais qu'ils les ont ensuite retiré pendant un temps à cause de zones d'ombres dans la licence d'Hardened. (visiblement ça n'est plus le cas)
PS : C'est fou tout ce qu'on peut trouver comme infos grâce à google.
PS2 : C'est une version de sécurisation de php, ça aurait été étonnant qu'ils permettent à n'importe quel script de supprimer les sécurités qu'ils rajoutent (où aurait été l'intérêt du système dans ce cas?)
Marsh Posté le 24-08-2007 à 18:09:32
C'est bien beau tout ça !!!! Mais comment je fais maintenant. J'ai une fonction de mon prog HS pour une soit disant sécurité incontournable qui énerve plus qu'autre chose. Si au moins il y avait un moyen de faire une parenthèse avec ça, ce serait le pied, mais apparemment on doit subir cette lourdeur !!!!!
Marsh Posté le 24-08-2007 à 18:12:18
thierryR a écrit : C'est bien beau tout ça !!!! Mais comment je fais maintenant. J'ai une fonction de mon prog HS pour une soit disant sécurité incontournable qui énerve plus qu'autre chose. Si au moins il y avait un moyen de faire une parenthèse avec ça, ce serait le pied, mais apparemment on doit subir cette lourdeur !!!!! |
Tu cherches dans Google : http://www.google.fr/search?q=Suho [...] utf-8&aq=t
Accessoirement, ils donnent l'astuce dans le premier lien (mais j'ai pas essayé)
Marsh Posté le 20-08-2007 à 16:23:02
Bonjour. Je suis passé depuis peu en apache2 pour gérer une base de données mysql qui fonctionnait sans problème. Mes pages sont écritent en php. Pour adapter apache2 j'ai écris un fichier à part reprenant toutes les variables passées au programme.
Je me retrouve avec un problème que je ne m'explique pas. J'ai construit une liste avec des <input type='text' name='id[]'>
Quand j'envoie la liste je récupere la variable $_POST['id'] sous forme d'un array.
Celui-ci se limite pour une raison qui m'échappe à 66 lignes soit 528 caractères, alors que ma petite liste fait 105 lignes.
Je n'arrive pas à trouver pourquoi.
Si je diminue ma liste en deçà de 66 tout fonctionne bien. Dans l'inverse je reste plafonné.
Y a t-il une limite imposée dans apache2 par défaut qui provoquerait ce phénomène ?
Merci
---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/