Laurie-Anne a écrit :
Oui, là du coup... Autant faire des liens absolus.
Non, car si tu changes d'hébergement le site ne fonctionne plus du tout. Mieux vaut faire des liens relatifs, ou des liens partant d'une variable disponible dans tous les scripts et qui représente le chemin absolu (sur le serveur) du répertoire racine du site.
bulle97 a écrit :
J'ai fait un lien absolu pour essayer, mais ça ne fonctionne pas, la page me sort une erreur là où devrait apparaître le fichier.
(...)
URL file-access is disabled in the server configuration
Woula on se calme. On a dit faire des include avec un chemin absolu, pas faire des include d'URL! C'est pas du tout DU TOUT la même chose. En général, inclure une URL est interdit par les paramètres de PHP sur le serveur pour des raisons évidentes de sécurité. Combiné à un script PHP mal sécurisé, ça pourrait permettre à hacker même très nul d'injecter le code malicieux de son choix.
Ceci ne pose pas de problème de sécurité:
<?php
include("/chemin/absolu/sur/le/serveur/vers/mon/fichier.php");
?>
Ceci non plus:
<?php
include("../../../chemin/relatif/sur/le/serveur/vers/mon/fichier.php");
?>
(on notera qu'on peut utiliser un chemin relatif et remonter d'autant de répertoires que nécessaire)
Et ceci non plus:
settings.php à la racine du site:
<?php
$BASE_PATH = '/chemin/absolu/vers/repertoire/de/base/'
?>
blabla/truc/bidule.php:
<?php
include("../../settings.php"); // Le nombre de répertoire à remonter peut varier
include($BASE_PATH . "blabla/machin/fichier.php");
?>
Je précise rapidement que je ne connais rien à PHP, donc c'est sans doute plein d'erreurs, mais c'est pour montrer l'idée.
Et aussi: on peut récupérer, depuis un fichier .php, le chemin absolu sur le serveur du dossier de ce fichier. Donc pour définir $BASE_PATH, on peut demander à PHP de trouver la valeur tout seul comme un grande.
Modifié par Florent V. (13 Nov 2009 - 13:51)