Hier après-midi et jusqu'à tard le soir, j'ai pas mal transpiré à cause d'un bug lors de la soumission d'un formulaire.
En validant ce dernier, toutes les données contenues dans les
$_SESSION et $_POST étaient comme
"supprimées" ou
"réinitialisées".
Après avoir décortiqué chaque ligne de codes pendant des heures, je n'étais toujours pas arrivé à trouver d'où venait l'erreur.
En fait si j'avais fait plus attention à l'une des premières phrases que m'avait dit
mon frère, je n'aurais pas pataugé aussi longtemps :
"ça a planté depuis que j'ai rajouté un milestone" (comprenez là qu'il a rajouté une nouvelle variable prête-à-être-poster).
En gros, on pouvait rajouté
dynamiquement des variables dans ce formulaire avant de le soumettre. Du coup, c'était
"la goutte qui avait fait débordé le vase", et donc
"planté" le tout.
...
Le problème venait du fait que le nombre de variables
"postées" est
limité (par mesure de sécurité, un peu normal en fait) avec la version de
PHP5 (auparavant il fallait installer un
Patch Suhosin). Je ne sais pas si c'est le cas sur toutes les configurations de serveur, mais sur celui qu'on utilisait, le nombre était limité à
50.
Pour le savoir il suffit d'exécuter en PHP la ligne suivante :
echo ini_get('suhosin.post.max_vars');
Si vous désirez modifier le nombre de variables postées, il suffit de rajouter dans le php.ini la ligne suivante :
suhosin.request.max_vars = 2000
Ou dans le fichier
.htaccess :
php_value suhosin.request.max_vars 2000
suhosin.request.max_vars permet de fixer le nombres de variables transmises
(POST, GET et COOKIE).
Si vous désirez cibler le nombre de variables envoyées en
POST, il suffirait de la variable
suhosin.request.max_vars; pour les
GET ce serait
suhosin.get.max_vars, et
COOKIE suhosin.cookie.max_vars.
Il existe d'autres valeurs qui peuvent être susceptibles d'être changées comme
suhosin.post.max_array_index_length, suhosin.post.max_name_length, suhosin.post.max_array_depth, ou suhosin.post.max_value_length entre autres, donc vous pouvez consulter le fichier
php.ini ou faire un petit
phpinfo(); pour faire le tour de toutes ces
variables suhosin.
[edit]C'est bon il y a moins de fautes ^^[/edit]
Rhoooo l'autre. Il était tard hier et j'ai pas voulu la twitter en private sur son BBB xD
Bon ce soir je corrige les fautes
@Palleas, de rien, c'est gratuit
C'est cool mais maintenant je développe en freestyle, sans cerveau. J'ai juste à twitter xuxu et hop