Bonjour
J'ai un script PHP qui fait appel à une requete SQL trés lourde mais qui normalement se termine largement avant le time out standard des 30 secondes.
Mon site est chez Free.
Bien que dans ce script je tache de gerer correctement les dépassements de temps j'ai un time out au bout de quelque secondes (6,7) chez ce fournisseur : page blanche ou message que le site ne peut traiter la demande avec IE, proposition de downloader le fichier php avec Firefox. (je sais ce n'est pas pour les professionnels ! mais j'ai un site gratuit et bénévole de généalogie)
Est ce que quelqu'un peut me dire si il y a des limitations volontaires chez Free du temps maximum d'exécution d'un script PHP ?
Pour voir si il n'y aurait pas d'autre causes j'ai écrit les deux procédures suivantes :
_test.php : un formulaire qui affiche le temps max du serveur, un input et un bouton.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 _test.php <?php include("_boucle.php"); echo '<form name="form1" method="post" action="_boucle.php">'; echo 'Temps d exécution maximum obtenu du serveur avec ini_get("max_execution_time") : '.ini_get("max_execution_time").'<br>'; echo '<input type="text" name="timeout">'; echo '<input type="submit" name="submit" value="boucle">'; echo '</form>'; ?> et : _boucle.php <?php if (isset($_POST['timeout'])) { $timeout = $_REQUEST['timeout']; $T0 = time(); while ((time() - $T0)< $timeout){} echo "Départ :".$T0." | Fin :".time()." | Temps attribué ".$timeout." secondes"; } ?>
On met une valeur en seconde dans le input on clique sur le bouton
et on lance _boucle.php
qui tourne pendant le temps défini dans le formulaire.
Boucle ne fait rien comme cela pas de problème de mysql de script et autre. A la fin du temps attribué il affiche juste le message du temps d'exécution.
Résultat le ini_get("max_execution_time") donne 30 seconde mais
ca plante quand on sélectionne plus de 7 seconde !
Merci de votre aide
Jean Louis
Partager