
| auteur : Cyberzoide |
PHP limite la durée d'exécution des scripts. Ceci pour des raisons de sécurité et de performance. En effet, un script fou qui contiendrait une boucle infinie due à une erreur de programmation consommerait énormément de ressources. Or les hébergeurs ne peuvent se permettre de compromettre les performances de leurs serveurs, ainsi ils limitent cette durée d'exécution.
En cas de dépassement de cette durée limite, il survient cette erreur :
Fatal error: Maximum execution time exceeded in your script on line 16 |
Mais si le traitement d'un script exige de dépasser cette durée limite, que faire ?
Il existe alors deux méthodes possibles :
- modifier la directive max_execution_time du fichier de configuration php.ini
- appeler la fonction set_time_limit($time) qui rajoute la durée $time à celle définie par max_execution_time
La valeur de cette durée est fixée par défaut à 30 secondes. L'unité est la seconde. Pour ne fixer aucune limite de temps, il faut lui donner la valeur zéro.
A noter que la fonction set_time_limit est désactivée lorsque PHP fonctionne en safe mode. Il apparaîtra alors l'erreur suivante :
Warning: Cannot set time limit in safe mode in your script on line 18 |
L'hébergeur gratuit Free.fr tourne en safe mode et ne donne pas accès au fichier de configuration, dans ces conditions, il n'est donc pas possible de changer la durée limite d'exécution des scripts.
|
| auteur : Cyberzoide |
Elle permet de connaître les valeurs définies dans les directives de configuration du fichier php.ini.
Attention, cette fonction est affectée par ini_set().
|
| auteur : Forum PHP |
Il possible de connaître la version de PHP ainsi que les modules chargés à l'aide de la fonction phpinfo
L'utilisation de cette fonction est très simple, il vous suffit de créer un script PHP contenant le code suivant :
Sur la première ligne est affichée la version de PHP. Dans le même tableau sont affichées ensuite des informations
comme le type de système d'exploitation, la commande utilisée pour compiler PHP, le type de fonctionnement de PHP
(CGI ou module) et le ou les fichiers ".ini" utilisés pour la configuration de PHP.
Vient ensuite un tableau "PHP Core" qui montre les valeurs des différentes directives indiquées dans les fichiers ".ini".
Les informations des modules suivent avec un tableau pour chaque module.
À la fin se trouve le contenu des variables d'environnement ainsi que des variables "$_REQUEST", "$_GET", "$_POST", "$_COOKIE", "$_SERVER" et "$_ENV".
|
| auteurs : Julp, Hachesse | <?php
?>
<h2>Liste des modules disponibles :</h2>
<ol start="1" type="I">
<?php
$listModules = get_loaded_extensions();
foreach ($listModules as $module){
echo '<li>Module : <b><a href="#'.$module.'">'.$module.'</a></b><br />';
}
?>
</ol>
<br /><br />
<h2>Détail des fonctions par module:</h2>
<ol type="I">
<?php
foreach ($listModules as $module) {
$listFunctions = get_extension_funcs($module);
sort($listFunctions);
echo '<li id="'.$module.'">'.$module.'<ol type="1">';
foreach ($listFunctions as $function) {
$param = str_replace('_', '-', $function);
echo '<li><a href="http://fr.php.net/'.$param.'">'.$function.'</a></li>';
}
echo '</ol></li>';
}
?>
</ul> |
|
| auteur : Cyberzoide | Le fichier de configuration php.ini permet d'interdire l'utilisation de certaines classes dans les scripts PHP pour des raisons de sécurité. Cette directive de configuration prend pour valeur une chaîne de caractères délimitée par des doubles quotes. Cette chaîne est composée de la liste des classes à interdire, séparées par une virgule.
Exemple : disable_classes = "SQL_user" |
Cette directive n'est pas inactivée par le safe mode.
|
| auteur : f-demu01 | Il existe deux directives du fichier de configuration php.ini permettant de charger un script avant ou après le chargement d'une page. Il s'agit des variables
auto_prepend_file =
auto_append_file = |
|
| auteur : Cyberzoide | Le fichier de configuration php.ini permet d'interdire l'utilisation de certaines fonctions dans les scripts PHP pour des raisons de sécurité (par exemple, interdire l'utilisation de system(), exec(), et autres...).
; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_functions = |
Cette directive de configuration prend pour valeur une chaîne de caractères délimitée par des doubles quotes. Cette chaîne est composée de la liste des fonctions à interdire, séparées par une virgule.
Exemple :
disable_functions = "system, exec, phpinfo" |
Cette directive n'est pas inactivée par le safe mode.
|
| auteur : Cyberzoide | Soit en éditant le fichier php.ini soit au cours du script avec la fonction ini_set($var, $val).
Cette fonction permet de changer la valeur d'une option de configuration du php.ini pour la seule durée du script en cours d'exécution. Elle change l'option $var pour lui donner la valeur $val. Elle retourne FALSE en cas d'échec, ou l'ancienne valeur en cas de réussite.
Exemple : if(! ini_set("max_execution_time", "60")) {echo "échec";} |
Cet exemple permet de modifier le temps maximum autorisé d'exécution du script.
Au contraire, la fonction ini_restore($var) permet de restaurer la valeur de la variable $var par celle définie dans le fichier php.ini. Elle permet donc d'annuler les modifications effectuées sur l'option $var par la fonction ini_set().
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|