Page 1 sur 1

En cas de recursion infinie apache réagit diversement?

Posté : 08 mars 2011, 16:05
par clasie
Bonjour,

En suivant une question de qcm je suis tombé sur une réponse récursive. Jusque là je comprends. Mais sur mon serveur apache local lorsque je fais tourner le code en dessous il m'est proposé de télécharger le fichier script (qui d'ailleurs ne se télécharge pas si j'accepte la proposition) , sur un autre serveur (distant) le script tourne et s'arrête tout seul.

Ma question: qu'est-ce qui détermine un comportement à la place de l'autre de la part d'apache, une config apache sans doute, mais laquelle?

Merci pour toute suggestion.
Claude

code:

$kiwi = 'vert';
$fruit = &$kiwi;
$fruit = array();
$fruit['kiwi'] = $kiwi;

// un var_dump sur le serveur distant de $fruit donne
// -> array(1) { ["kiwi"]=> array(1) { ["kiwi"]=> array(1) { ["kiwi"]=> *RECURSION* } } }

Re: En cas de recursion infinie apache réagit diversement?

Posté : 10 mars 2011, 02:41
par devlop78
Quel rapport avec Apache ? Pour ce qui est de RECURSION, cela évite à ton var_dump ou autre d'afficher des données à l'infini. Par exemple un objet Auteur qui aurait comme propriété bouquin un objet bouquin, qui lui même aurait une propriété auteur l'objet auteur ci-dessus. Si on fait un var_dump de Auteur, on a une boucle infinie. C'est une protection ...

Re: En cas de recursion infinie apache réagit diversement?

Posté : 10 mars 2011, 10:24
par Mazarini
Bonjour,

Il y a dans php.ini un temps d'exécution maximal => arrêt du script si dépassement (serveur de l'hébergeur ?)

Si le temps d'exécution maximal est suffisament important, la récursion provoque un dépassement de la mémoire avec un comportement alléatoire ou une erreur 500 (ton serveur ?).

Re: En cas de recursion infinie apache réagit diversement?

Posté : 10 mars 2011, 10:50
par popy
La différence, c'est le heder "content-type" par défaut. Apparemment en local le content-type ne doit pas être défini avant le crash de ton script, alors que dans l'autre la page blanche générée est considérée comme une page html, vu que le header est envoyé avant.