Sécurité

Include

6.Le langage PHP

6.7.Include

6.7.5.Comment configurer include_path?

6.7.5.1.Introduction

Il existe différents moyen de modifier la valeur include_path
  • En modifiant le fichier php.ini[où?]
  • En modifiant la configuration du serveur web Apache
  • En utilisant des fonctions PHP
mais nous verrons que ces méthodes ne sont pas toutes satisfaisantes.

6.7.5.2.Modification dans php.ini

A la base, comme tout autre paramètre PHP, include_path est défini dans le fichier php.ini[où?]. Une option, pour modifier cette valeur consiste donc à effectuer la modification directement au niveau du fichier. Cette solution est simple et efficace mais pas satisfaisante.
Faire ainsi implique de modifier la configuration du serveur juste pour votre application alors que peut-être d'autres applications tournent sur ce même serveur et peut-être que votre modification va avoir des répercutions néfastes sur ces autres applications. Et il n'est pas sur non plus que les personnes désirant déployer votre application auront le droit de modifier le fichier php.ini. Et ce n'est assurément pas le cas, si l'application est installée chez un hébergeur en hébergement mutualisé (incluant les hébergements gratuits).

6.7.5.3.Modification au niveau d'apache

Si le serveur a été configuré de telle sorte que vous avez ces droits vous pouvez modifier la configuration de votre environnement web via une directive dans le fichier .htaccess
php_value include_path ".:/usr/share/php:/usr/local/mabibliotheque"
Si vous avez de la chance, il y aura un environnement web (un virtual host) par application tournant sur le serveur et dans ce cas, cette modification sera sans effet sur les autres serveurs mais les utilisateurs de votre projet auront-ils vraiment le droit de faire ces modifications? Rien n'est moins sur.

6.7.5.4.Modification via un script PHP

Le paramètre include_path peut également être modifié via une fonction PHP set_include_path() et c'est cette méthode que nous préférons puisqu'elle ne nécessite aucune intervention sur le serveur. Ce qui simplifie grandement le déploiement et est applicable à tous.
Vous pouvez donc faire directement
set_include_path('.:/usr/share/php:/usr/local/mabibliotheque');
ou mieux, pour récupérer la configuration par défaut sans avoir à la recopier (au risque d'avoir des différences)
set_include_path(get_include_path().PATH_SEPARATOR.'/usr/local/mabibliotheque');
En contre partie, cette façon de faire implique d'appeler cette fonction en début de script ou tout du moins avant toute inclusion ne faisant pas appel à des chemins absolus ou relatifs. Et ceci pour tous les scripts principaux (ceux qui sont exécutés et non ceux qui sont inclus).Pour cela, vous avec donc intérêt à créer un script que vous pouvez appeler include_path_inc.php que vous intégrerez dans les scripts principaux via des appels du genre
require_once(dirname(__FILE__).'/../include/include_path_inc.php');
Ici vous pouvez apprendre :
1.Introduction
2.Installation de PHP
3.Exécuter un script PHP
4.Configuration et environnement d'exécution de PHP
5.L'environnement de développement
6.Le langage PHP
6.1.Introduction
6.2.Mon premier script
6.3.La syntaxe
6.4.Les boucles (for, while, foreach, do) en PHP
6.5.Les tableaux (array) en PHP
6.6.Les fonctions
6.7.Include
6.7.1.Introduction
6.7.2.Include et les bibliothèques de fonction
6.7.3.include_once, require et require_once
6.7.4.Include et include_path
6.7.5.Comment configurer include_path?
6.7.5.1.Introduction
6.7.5.2.Modification dans php.ini
6.7.5.3.Modification au niveau d'apache
6.7.5.4.Modification via un script PHP
6.7.6.Include et la mise en page
6.8.Programmation orientée objet
6.9.Les fonctions de manipulation de tableaux
6.10.Les dates
6.11.Fichiers et répertoires
6.12.Les paramètres d'entrée d'un script PHP
6.13.Utilisation de la librairie graphique
6.14.JpGraph pour tracer courbes et diagrammes
6.15.Utilisation de bases de données avec PHP
6.16.LDAP
6.17.Parser un document XML
6.18.Génération de documents PDF en PHP
6.19.Envoyer un mail
6.20.Créer un webmail avec IMAP
6.21.Droits utilisateurs: chmod 777
6.22.Localization (l10n) et Traduction
7.PHP pour le web
8.Internationalisation (i18n) et encodage en PHP
9.Créer un fichier de logs/traces
10.Déboguer une application PHP
11.Programmer en PHP en toute sécurité
12.Bibilothèque PEAR
13.Zend Framework 2 et 3
14.Installation de Zend Framework 2
15.Joomla
16.Composer
17.PHPUnit
18.PHPDocumentor
19.Mesure de temps d'exécution (benchmark) d'une fonction PHP
20.Exemples de scripts PHP
21.Erreurs fréquentes et les solutions
22.Archives
Version imprimable: imprimer