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.La configuration 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 dates
6.10.Fichiers et répertoires
6.11.Les variables prédéfinies
6.12.Les formulaires
6.13.Validation de formulaire
6.14.Captcha (anti robot) pour formulaire
6.15.Utilisation de la librairie graphique
6.16.JpGraph pour tracer courbes et diagrammes
6.17.Utilisation de bases de données avec PHP
6.18.Upload de fichier
6.19.Les cookies
6.20.Les sessions
6.21.Parser un document XML
6.22.Génération de documents PDF en PHP
6.23.Envoyer un mail
6.24.Créer un webmail avec IMAP
6.25.Droits utilisateurs: chmod 777
6.26.Localization (l10n) et Traduction
7.Internationalisation (i18n) et encodage en PHP
8.Les débogueurs
9.Programmer en PHP en toute sécurité
10.Bibilothèque PEAR
11.Zend Framework 2 et 3
12.Installation de Zend Framework 2
13.Joomla
14.Composer
15.PHPUnit
16.PHPDocumentor
17.Exemples de scripts PHP
18.Erreurs fréquentes et les solutions
19.Archives
Forum PHP
Version imprimable: imprimer