Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 30/10/2006, 17h03   #1
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Par défaut Inclusion de fichiers / Problème de localisation

Bonjour à tous, j'ai besoin que vous m'éclairiez sur un point, au niveau de mes scripts j'ai des soucis pour préciser le chemin d'un fichier à aller chercher, je travail en local et je ne comprends pas pourquoi ça merde

Je suis sur la déclaration d'un template :

Code :
$template = new Template("/artus/inc/templates/");
Et lorsque que j'execute ma page, voilà l'erreur :

Citation:
Warning: message_erreur(/artus/inc/moteur_template.inc): failed to open stream: No such file or directory in c:\easyphp1-7\www\artus\inc\fonctions.php on line 70
Le chemin du fichier est bon pourtant, je ne comprends pas pourquoi ça merde, je suppose que c'est du au fait que je sois en local mais je n'arrive pas à comprendre pourquoi...
Pour la suggestion de passer le chemin du fichier en relatif, la réponse est que je n'ai pas le choix, ce bout de code est appelé à plusieurs niveaux différents donc je ne peux pas feinter si vous avez des idées, pour feinter, d'une façon ou d'une autre, je vous remercie d'avance !
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 18h00   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
C'est normal, car le chemin est calculé à partir du fichier principal, pas du fichier inclus. Si ce fichier est inclus à plusieurs niveaux, il existe plusieurs solutions, notamment en passant par la simili-constante __FILE__ et basename().
Je te propose une solution qui fonctionne.
Dans chaque script principal (= non inclus), tu définis une constante qui permet de revenir à la racine du site. Tu appelles ensuite cette constante dans chaque script inclus, et tu la concatènes avec le chemin absolu vers le fichier choisi.
Exemple :
Code :
1
2
3
4
5
// dans le script principal, situé dans admin/scripts/
define("RACINE", "../../"); // renvoie donc à la racine du site
 
// dans ton script inclus
$template = new Template(RACINE."artus/inc/templates/");
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 18h35   #3
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Ça fonctionne du feu de dieu ! Je te remercie grandement !
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 19h07   #4
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Ça marche bien mais pas pour tout, les liens fonctionnent bien pour aller chercher les modèles des pages (fichiers .tpl) mais lorsque je parse ma variable $racine (qui vaut la constante RACINE) il ne se passe rien, c'est comme si la variable ne prenait pas de valeur

Je ne comprends pas pourquoi

Bout de code d'appel de {RACINE} :

(la constante est une variable parce que je pensais que les constantes ne pouvaient pas être parsées Au cas où ^^)

Code index.php :
1
2
3
4
5
6
7
8
 
	$racine = "../../artus/";
	define("RACINE",$racine);
 
// Code...
 
	$template->set_var(array('DATE' => $date,
				'RACINE', $racine));

Code "header.tpl :
1
2
3
4
5
6
7
8
9
10
11
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Codart-France.net - Portfolio Personnel / {TITRE_PAGE}</title>
		<style type="text/css">
			@import url("{RACINE}style.css");
		</style>
	</head>
	<body>

Je suis perdu !

Merci à toi
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 19h21   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Et si tu remplaces $racine par "../../artus" dans ton set_var(), que se passe-t-il ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h05   #6
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Ça ne change rien
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h09   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Ce serait donc un problème de ton moteur de template, pas de la constante. Comment faisais-tu avant ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h27   #8
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Avant le chemin était spécifié en dur, sans passer par une variable, là ça voudrait dire que le moteur ne travail pas correctement ?

Pourtant la variable je ne l'affiche pas que dans les balises <head></head>, je m'en sert aussi dans le code, pour spécifier les liens des menus C'est ça que je ne comprends pas :S
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h30   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par Artusamak
Pourtant la variable je ne l'affiche pas que dans les balises <head></head>, je m'en sert aussi dans le code, pour spécifier les liens des menus C'est ça que je ne comprends pas :S
Et là, ça fonctionne ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h34   #10
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
En gros il y a deux points distincts :

- La feuille de style qui n'est pas appelée vu qu'elle n'a pas le bon chemin
- Les liens ne sont pas bons vu que le préfixe n'est pas transmis

Quand je reviens à la config d'avant, je remplace le chemin de la feuille de style qui est une variable par un chemin en dur, donc forcément oui, ça fonctionne pour la feuille de style, mais pour le sliens non ! Toujours le même problème

Je ne comprends pas pourquoi le parsage merde partiellement :S

Tu veux plus de code ?
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h41   #11
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Je confirme le pb a priori dans le moteur de template. Je ne suis pas forcément le mieux placé pour t'aider, dans ce cas.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2006, 23h45   #12
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Je veux bien le croire mais quand je mets les choses de façon à ce que ça soit une variable comme les autres à parser, le problème est toujours là, c'est pas étonnant ???

Merci à toi.
Artusamak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 14h50   #13
Nouveau Membre du Club
 
Avatar de Artusamak
 
Inscription : mai 2006
Messages : 76
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 76
Points : 30
Points : 30
Mise à jour...

J'ai honte... J'avais oublié de reparser ma constante RACINE... donc forcément, ça ne fonctionnait pas

C'est honteux

Merci quand même
Artusamak 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 18h22.


 
 
 
 
Partenaires

Hébergement Web