Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 15h33   #1
Membre à l'essai
 
Inscription : décembre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 60
Points : 20
Points : 20
Par défaut include() avec un chemin commençant par / : fichier non trouvé dans le document root

Bonjour à tous

J'ai un petit problème lorsque j'inclus un fichier comme ceci

Code :
<?php include('/includes/lang_config.php');?>
En effet, une fois sur le site, l'erreur suivante s'affiche...

Citation:
Warning: include(/includes/lang_config.php) [function.include]: failed to open stream: No such file or directory in /home/odysseetransfer/index.php on line 49
Mais si je mets includes/lang_config.php sans le / au début, tout marche correctement.

On voit bien qu'il prend home comme racine...
Pourquoi va t'il chercher à la racine de Home alors que la racine devrait être Odysseetransfer ?

J'ai regardé dans la config d'apache dans site-avalaible, et j'ai changé la ligne suivante :
Code :
DocumentRoot /home/odysseetransfer
en
Code :
DocumentRoot /odysseetransfer
mais lorsque je redémarrer apache, vois l'erreur que j'obtiens:

Citation:
DocumentRoot [Warning: DocumentRoot [/odysseetransfer] does not exist]
Un peu normal...

Pourquoi voit-il home comme une racine alors qu'elle devrait être odysseetransfer?

Merci à vous pour votre aide qui me sera précieuse.
Cordialement
torrgovin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 16h23   #2
Membre expérimenté
 
Inscription : janvier 2007
Messages : 608
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 608
Points : 539
Points : 539
Bonjour,
Je ne saurais répondre à ta question mais je te conseillerais pour ton code d'écrire ceci :
Code php :
1
2
3
4
<?php 
$path= $_SERVER['DOCUMENT_ROOT'];
include($path.'/includes/lang_config.php');
?>

Ce qui devrait résoudre ton problème.
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 19h48   #3
Membre régulier
 
Avatar de zugolin
 
Inscription : octobre 2007
Messages : 239
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 239
Points : 98
Points : 98
que tu soit dans la config apache ou dans l'insertion d'un code, les liens ont le meme principe
en supposant que ton site soit fait comme ça =>
Citation:
/home/odysseetransfer/includes/
soit tu démarres de la racine (la racine, c'est pas "home", c'est "/" )
en supposant que tu sois dans "/home/odysseetransfer"

Citation:
include '/home/odysseetransfer/includes/lang_config.php'
tu peux faire aussi
include 'includes/lang_config.php' ou './includes/lang_config.php'

je ne crois pas que apache accepte autre chose qu'un lien comme ça
Citation:
/home/odysseetransfer
(ah merdoum, j'ai oublié comment on nommait ces ecritures de liens ....y'en a bien un qui va passer par là ...? )
zugolin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 21h12   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
include() n'utilise pas la configuration Apache.
/ est donc la racine du disque.

si tu veux faire tes include() en utilisant la configuration apache, il faut utiliser $_SERVER['DOCUMENT_ROOT'] dans ton chemin.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 10h25   #5
Membre régulier
 
Avatar de zugolin
 
Inscription : octobre 2007
Messages : 239
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 239
Points : 98
Points : 98
Citation:
(ah merdoum, j'ai oublié comment on nommait ces ecritures de liens ....y'en a bien un qui va passer par là ...? )
ça y est .. !! ce sont les url relatives :

./ correspond au dossier actuel ;
../ correspond au dossier parent ;
/ correspond au dossier racine.

url absolue:
http://tonsite.com/odysseetransfer/index.php , par exemple
zugolin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 23h53   #6
Futur Membre du Club
 
Inscription : juin 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 44
Points : 16
Points : 16
personnellement je fais toujours ceci :

Code php :
Require('/home/login_serveur/include/fichier.php');

ce long chemin prend moins de ressource que :

Code php :
Require('../../include/fichier.php');
gianni17 est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h23.


 
 
 
 
Partenaires

Hébergement Web