Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
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 26/01/2007, 15h11   #1
Invité régulier
 
Inscription : décembre 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 39
Points : 9
Points : 9
Par défaut [Configuration] Chemin d'accès avec un script

Bonjour à tous,

Voilà j'ai un petit problème de chemin d'accès avec un script

Ce script est contenu dans un dossier (modules/live_count/compteur-live.php)
Ensuite j'appelle ce script par une fonction, dans un fichier fonctions.php contenu à la racine. Le problème c'est que sitôt que je me retrouve plus à la racine (par ex.: www.monsite.com/admin/) j'ai pein de failed open stream.

Je comprend l'erreur, mais le problème c'est que je ne comprend pas comment modifier la fonction file

la ligne qui me pose problème dans mon compteur-live.php
Code :
$compteur_live = file("modules/live_count/compteur-live.txt");
et ma fonction
Code :
1
2
3
4
5
6
7
8
9
10
function AffCountLive() { 
$compteur_live = file("modules/live_count/compteur-live.txt");
echo (count($compteur_live)/2)." ";
if((count($compteur_live)/2) > 1) {
echo "connectés";
}
else {
echo "connecté";
}
}
Merci d'avance pour votre aide

A+
Skippy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 15h33   #2
Membre éprouvé
 
Avatar de yjuliet
 
Homme Yvan
Consultant informatique
Inscription : août 2006
Messages : 360
Détails du profil
Informations personnelles :
Nom : Homme Yvan
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2006
Messages : 360
Points : 402
Points : 402
Le problème vient du fait que quand tu inclues un fichier dans un autre, le répertoire de base est celui dans lequel se trouve l'appelant.

C'est à dire que quand tu fais
Code :
1
2
$FILE_NAME = "./include/nom_du_fichier";
include ($FILE_NAME);
il se contente de lire le fichier et d'insérer (virtuellement) le code en question dans ton fichier actuel. Ce n'est pas comme si il déclenchait une autre requete avec sa variable d'environnement de répertoire courant spécifique.

Donc si dans un fichier A tu inclues B qui lui-même inclue C, il faut que dans B, le chemin d'accès à C soit donné, soit en absolu (en général, c'est un choix pas mauvais si tu gères toi même le serveur car tu peux même, éventuellement, utiliser des répertoires qui ne sont pas accessibles par les clients web ex: "/etc/phpshared/config.inc.php"), soit en relatif par rapport à A qui te permet de récupérer. N'oublies pas que PHP utilise les chemins locaux sur ta machine et non les chemins définis par les répertoires virtuels du serveur web.
Une solution, si tu veux absolument rester en relatif, c'est d'utiliser une variable de configuration pour le chemin des fichiers à include :

dans A :
Code :
$INCLUDE_DIR = "../include/";
dans B :
Code :
include $INCLUDE_DIR.$FILE_NAME
ceci te permet de te sortir de pas mal de situations.

Bon courage
yjuliet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 16h00   #3
Invité régulier
 
Inscription : décembre 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 39
Points : 9
Points : 9
Salut yjuliet,

Merci bcp pour toutes ces précisions, j'ai pas tout compris lol, mais une grande partie, je ne le savais pas

Je vais regarder cela de plus près

Encore une fois merci

A+
Skippy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 19h09   #4
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

pour palier a ton problème tu peux utiliser une constante contenant la racine physique de ton site et appeler ton ficher en fonction de cette constante ainsi d'où que tu l'appelles, le lien sera bon :
Code :
1
2
3
4
5
6
define ('MAIN_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); //racine physique du site
...
function AffCountLive() { 
$compteur_live = file(MAIN_PATH.'modules/live_count/compteur-live.txt');
...
}
bien sur si ton dossier module n'est pas à la racine web, tu dois indiquer le chemin .
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2007, 21h26   #5
Invité régulier
 
Inscription : décembre 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 39
Points : 9
Points : 9
Hello,

Merci bcp pour toutes ces précisions, ca marche impecc !


Bonne soirée
Skippy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h26.


 
 
 
 
Partenaires

Hébergement Web