L'erreur open_basedir de PHP

Si l'erreur suivante s'affiche sur votre site :

Warning: main() [function.main]: open_basedir restriction in effect

cette solution vous concerne :

L'open_basedir de PHP est une des sécurités de nos serveurs qui permet de limiter les actions de vos scripts PHP uniquement à votre site et non celui du voisin ou du serveur en général.

Ce message d'alerte survient alors quand vous faites appel à une page en dehors de votre site. Dans 99 % des cas, c'est une erreur de développement PHP dans votre page (le 1 % restant correspond à une tentative de piratage de votre script).

Lors du développement PHP avec des fonctions telles que des include, require, etc., nous commettons souvent la faute de pointer vers ces fichiers par des liens relatifs. Il faut alors changer de méthode pour que cela fonctionne et alors appeler ces fichiers avec des liens absolus.

Il existe une méthode très simple pour avoir un lien absolu. Voici un exemple de code avec une fonction include() et une page “ fonction.php ” dans le dossier “ news ” :

<?php include($_SERVER['DOCUMENT_ROOT'].'news/fonction.php'); ?>
 
open_basedir.txt · Dernière modification: 2011/05/31 11:37 par pingu
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki