Page 1 sur 1

Problème envoie formulaire

Posté : 16 mars 2009, 10:40
par Nico128
Hello ! J'ai un problème pour envoyer un formulaire.

Le if(isset($_POST['submit'])) ne marche pas. C'est à dire que le formulaire ne s'envoie pas.

Ca le fait lorsqu'il y a "trop" de champs dans mon formulaire, une dizaine... C'est pas si énorme. Avec des champs texte il n'y a pas de problème. Mais lorsque je rajoute des cases à cocher, c'est là que le problème arrive.

Par exemple si je met 15 case à cocher, je peux en cocher 13, le formulaire est envoyé et ma page de traitement arrive a récupérer les valeurs. Si j'en coche 14, alors là ma page de traitement me dis que le formulaire n'a pas été envoyé.

Lorsque je met quelques champs texte et toujours des cases à cocher, alors lorsque je coche 5-6 cases ça marche mais dès la 7ème ça ne marche plus.

Et lorsque je met que des champs texte je peux en remplir autant que je veux ça marche toujours. Ma page de traitement reconait que le formulaire a été envoyé.

On dirait qu'il y a une limite... Mais je comprend pas pourquoi ! J'ai fait une page avec simplement un formulaire, le plus simple possible, avec beaucoup de cases à cocher. Et une page de traitement la plus simple possible, avec simplement un test IF, le problème est toujours là.

Je pense que ça vient du serveur... ou de la configuration. Je n'utilise pas Easyphp... En fait ça se passe sur un serveur dans mon école.

Enfin voilà, je vais continué à chercher mais est-ce que vous avez déjà une idée d'ou sa pourrait venir ? C'est la première fois que je tombe sur ce problème. Un collègue m'a dis que ce problème il l'avais déjà eu et n'a jamais réussi a le résoudre.

Merci d'avance!

Posté : 16 mars 2009, 11:09
par stopher
Slt ,

Peux tu nous donner les portions de code qui ne fonctionnent pas .. sinon ca va être dure de trouver ton erreur :)

Ch.

Posté : 16 mars 2009, 11:26
par Nico128
Pas de problème, mais ça vient pas du code (enfin je suis à 90% sûr). Créer des formulaires et récupérer les valeurs c'est la base... Je fais a tout le temps.

Voilà les pages simplistes que j'ai fait juste pour tester.

test1.php
<form name="form1" method="post" action="test2.php">
  <input type="text" name="textfield1">
  <input type="text" name="textfield2">
  <input type="text" name="textfield3">
  <input type="text" name="textfield4">
  <input type="text" name="textfield5">
  <input type="text" name="textfield6">
  <input type="text" name="textfield7">
  <input type="text" name="textfield8">
  <input type="text" name="textfield9">
  <input type="text" name="textfield10">
  <input type="text" name="textfield11">
  <input type="text" name="textfield12">
  <input name="chk_periode1" type="checkbox" value="1">
  <input name="chk_periode2" type="checkbox" value="2">
  <input name="chk_periode3" type="checkbox" value="3">
  <input name="chk_periode4" type="checkbox" value="4">
  <input name="chk_periode5" type="checkbox" value="5">
  <input name="chk_periode6" type="checkbox" value="6">
  <input name="chk_periode7" type="checkbox" value="7">
  <input name="chk_periode8" type="checkbox" value="8">
  <input name="chk_periode9" type="checkbox" value="9">
  <input name="chk_periode10" type="checkbox" value="10">
  <input name="chk_periode11" type="checkbox" value="11">
  <input name="chk_periode12" type="checkbox" value="12">
  <input name="chk_periode13" type="checkbox" value="13">
  <input name="chk_periode14" type="checkbox" value="14">
  <input name="chk_periode15" type="checkbox" value="15">
  <input type="submit" name="Submit" value="Envoyer">
</form>
test2.php
<?php
if(isset($_POST['Submit']))
	echo 'ok';
else
	echo 'pas ok';
?>
Si je coche 7 checkbox, ça m'affiche "ok". Dès la 8ème, ça m'affiche "pas ok"

Étrange, et bien emmerdant ^^

Posté : 16 mars 2009, 11:38
par stopher
En effet , ton probléme est louche , car chez moi ca fonctionne .. :?

quelle est ta limite post_max_size ?

echo ini_get("post_max_size");
normalement , par defaut 8M , mais je ne vois que ça qui puisse vider ta superglobal POST ...

En GET ça fait la même chose ?

Ch.

Posté : 16 mars 2009, 12:30
par Ryle
J'ai eu le même problème... ça semble être un bug d'IE quand il y a plusieurs cases à cocher (aucun soucis sous firefox). En fait, il semble perdre des champs, comme s'ils nétaient pas présents dans le formulaire... Tu dois pouvoir le constater avec un print_r($_POST)

En rajoutant des inputs hidden bidons, ça passait plus ou moins (c'est mes input hidden qui étaient sucrés du post), et j'avais fini par craquer et enregistrer ça en ajax...

Posté : 16 mars 2009, 12:53
par Nico128
J'ai aussi pensé que ça venait de là. J'ai afficher le post_max_size et c'est bien 8Mo

J'ai envoyé mon formulaire en methode GET et je n'ai aucun problème, je peux coché autant de checkbox que je veux.
J'ai eu le même problème... ça semble être un bug d'IE quand il y a plusieurs cases à cocher (aucun soucis sous firefox). En fait, il semble perdre des champs, comme s'ils nétaient pas présents dans le formulaire... Tu dois pouvoir le constater avec un print_r($_POST)

En rajoutant des inputs hidden bidons, ça passait plus ou moins (c'est mes input hidden qui étaient sucrés du post), et j'avais fini par craquer et enregistrer ça en ajax...
Effectivement j'utilise IE, et je suis obligé car le site intranet ne fonctionne que sur IE (sur les autres navigateurs il y a un problème de certificat). Ne me demandez pas de résoudre le problème pour utiliser Firefox, car je ne peux rien faire pour ça (c'est pas moi qui m'en occupe) ^^

Sinon lorsque j'envoie mon formulaire avec plein de cases coché, mon array $_POST est vide. Et si j'actualise la page, IE me demande si je veux réenvoyer le formulaire. Si je met "Renvoyer" alors là ça marche.

La solution que tu me propose c'est de mettre des champs caché, et ensuite en javascript, faire que si une checkbox est coché je remplie le champs caché c'est ça ? Pourquoi pas je vais essayer :-D