<?php
$titre="Mon titre";
$charset="iso-8859-1";
$dossier="../"; // Niveau pour retourner à la racine du site
$style[0]="general";
$style[1]="..."; // Autres fichiers CSS éventuels
include($dossier.'inc/entete.php');
include($dossier.'inc/...'); // Autres includes éventuels
echo "</head>\n";
echo "<body>\n";
...
echo "</body>\n";
echo "</html>\n";
?>
Le fichier entete.php est :
<?php
header("content-type:text/html; charset=$charset");
session_start();
ob_start('ob_gzhandler');
echo "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN'
'http://www.w3.org/TR/html4/strict.dtd'>\n";
echo "<html>\n";
echo "<head>\n";
echo "<META http-equiv='content-type' content='text/html;
charset=$charset'>\n";
echo "<META http-equiv='Content-Language' content='fr'>\n";
echo "<TITLE>$titre</TITLE>\n";
foreach($style as $filecss)
{echo "<link rel='StyleSheet' type='text/css'
href='".$dossier.$filecss.".css'>\n";}
?>
Comme je voulais m'affranchir du remplissage « à la main » de la
variable $dossier, j'ai effectué des essais pour en arriver à
l'expression (sur une seule ligne) :
for
($i=2,$dossier="",$sub=substr($_SERVER['SCRIPT_FILENAME'],strlen($_SERVER['DOCUMENT_ROOT']));$i<substr_count($sub,'/');$i++,$dossier.="../");
qui, à priori, fonctionne correctement lorsqu'elle se trouve dans le
corps des pages, entre <body> et </body>. (Y'a peut-être plus simple
pour obtenir le même résultat).
Là où le bât blesse c'est lorsque je remplace la ligne $dossier="../"
par l'expression ci-dessus ; ça ne fonctionne pas et me sort plein
d'erreurs en mode distant alors qu'en local (Apache et Wamp5 sous
Windows XP) cela fonctionne bien.
Sans erreur : http://aviatechno.free.fr/vilgenis/essais_dir.php
Avec erreur : http://aviatechno.free.fr/vilgenis/essais_dir1.php
Comment faire pour que la variable $dossier soit remplie dynamiquement
en fonction du niveau d'arborescence du fichier php à l'intérieur du
site.
Merci.
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.free.fr
Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Dominique Ottello
Dominique Ottello écrivait :
Là où le bât blesse c'est lorsque je remplace la ligne $dossier="../" par l'expression ci-dessus ; ça ne fonctionne pas et me sort plein d'erreurs en mode distant alors qu'en local (Apache et Wamp5 sous Windows XP) cela fonctionne bien.
Problème résolu.
Les erreurs provenaient du fait que DOCUMENT_ROOT avait des valeurs différentes en local et en distant, du fait d'une « mauvaise » configuration d'Apache. -- Un ordinateur résout des problèmes que nous n'aurions pas sans lui Technique aéronautique : http://aviatechno.free.fr Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
Là où le bât blesse c'est lorsque je remplace la ligne $dossier="../"
par l'expression ci-dessus ; ça ne fonctionne pas et me sort plein
d'erreurs en mode distant alors qu'en local (Apache et Wamp5 sous
Windows XP) cela fonctionne bien.
Problème résolu.
Les erreurs provenaient du fait que DOCUMENT_ROOT avait des valeurs
différentes en local et en distant, du fait d'une « mauvaise »
configuration d'Apache.
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.free.fr
Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
Là où le bât blesse c'est lorsque je remplace la ligne $dossier="../" par l'expression ci-dessus ; ça ne fonctionne pas et me sort plein d'erreurs en mode distant alors qu'en local (Apache et Wamp5 sous Windows XP) cela fonctionne bien.
Problème résolu.
Les erreurs provenaient du fait que DOCUMENT_ROOT avait des valeurs différentes en local et en distant, du fait d'une « mauvaise » configuration d'Apache. -- Un ordinateur résout des problèmes que nous n'aurions pas sans lui Technique aéronautique : http://aviatechno.free.fr Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
Dominique Ottello
Dominique Ottello écrivait :
Problème résolu.
Les erreurs provenaient du fait que DOCUMENT_ROOT avait des valeurs différentes en local et en distant, du fait d'une « mauvaise » configuration d'Apache.
Bien que pas directement lié à PHP, mais plutôt à la configuration d'Apache, je pense nécessaire d'apporter quelques précisions.
donc, substr($_SERVER['SCRIPT_FILENAME'],strlen($_SERVER['DOCUMENT_ROOT'])) donne, comme résultat : /vilgenis/essais_dir1.php
En local, avec Wamp et Apache configurés par défaut : SCRIP_FILENAME=g:/wamp/www/aviatechno/vilgenis/essais_dir1.php DOCUMENT_ROOT=g:/wamp/www
donc, le résultat du "substr" susmentionné donne comme résulat : /aviatechno/vilgenis/essais_dir1.php avec, comme on peut le voir, un niveau supplémentaire, ce qui fausse les calculs d'arborescence.
J'ai configure httpd.conf pour lui ajouter mes sites virtuels et, entre autres, "aviatechno" :
Le "/" final de DocumentRoot est indispensable pour *simuler* un fonctionnement similaire au site réel.
Pour un fonctionnement identique, il faudrait remplacer : DocumentRoot G:/Wamp/www/ du ServerName localhost par DocumentRoot G:/Wamp/www/aviatechno
Mais, alors, je n'ai plus d'accès *directs* à mes autres sites virtuels.
-- Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation : il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau, même si c'est pire qu'avant et cela de toute évidence. Montherlant Technologie aéronautique : http://aviatechno.free.fr
Les erreurs provenaient du fait que DOCUMENT_ROOT avait des valeurs
différentes en local et en distant, du fait d'une « mauvaise »
configuration d'Apache.
Bien que pas directement lié à PHP, mais plutôt à la configuration
d'Apache, je pense nécessaire d'apporter quelques précisions.
donc,
substr($_SERVER['SCRIPT_FILENAME'],strlen($_SERVER['DOCUMENT_ROOT']))
donne, comme résultat : /vilgenis/essais_dir1.php
En local, avec Wamp et Apache configurés par défaut :
SCRIP_FILENAME=g:/wamp/www/aviatechno/vilgenis/essais_dir1.php
DOCUMENT_ROOT=g:/wamp/www
donc, le résultat du "substr" susmentionné
donne comme résulat : /aviatechno/vilgenis/essais_dir1.php
avec, comme on peut le voir, un niveau supplémentaire, ce qui fausse les
calculs d'arborescence.
J'ai configure httpd.conf pour lui ajouter mes sites virtuels et, entre
autres, "aviatechno" :
Le "/" final de DocumentRoot est indispensable pour *simuler* un
fonctionnement similaire au site réel.
Pour un fonctionnement identique, il faudrait remplacer :
DocumentRoot G:/Wamp/www/ du ServerName localhost
par
DocumentRoot G:/Wamp/www/aviatechno
Mais, alors, je n'ai plus d'accès *directs* à mes autres sites virtuels.
--
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Technologie aéronautique : http://aviatechno.free.fr
Les erreurs provenaient du fait que DOCUMENT_ROOT avait des valeurs différentes en local et en distant, du fait d'une « mauvaise » configuration d'Apache.
Bien que pas directement lié à PHP, mais plutôt à la configuration d'Apache, je pense nécessaire d'apporter quelques précisions.
donc, substr($_SERVER['SCRIPT_FILENAME'],strlen($_SERVER['DOCUMENT_ROOT'])) donne, comme résultat : /vilgenis/essais_dir1.php
En local, avec Wamp et Apache configurés par défaut : SCRIP_FILENAME=g:/wamp/www/aviatechno/vilgenis/essais_dir1.php DOCUMENT_ROOT=g:/wamp/www
donc, le résultat du "substr" susmentionné donne comme résulat : /aviatechno/vilgenis/essais_dir1.php avec, comme on peut le voir, un niveau supplémentaire, ce qui fausse les calculs d'arborescence.
J'ai configure httpd.conf pour lui ajouter mes sites virtuels et, entre autres, "aviatechno" :
Le "/" final de DocumentRoot est indispensable pour *simuler* un fonctionnement similaire au site réel.
Pour un fonctionnement identique, il faudrait remplacer : DocumentRoot G:/Wamp/www/ du ServerName localhost par DocumentRoot G:/Wamp/www/aviatechno
Mais, alors, je n'ai plus d'accès *directs* à mes autres sites virtuels.
-- Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation : il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau, même si c'est pire qu'avant et cela de toute évidence. Montherlant Technologie aéronautique : http://aviatechno.free.fr
FreakDev
salut,
tant mieux si ton problème est résolu, mais j'aurais voulu savoir par simple curiosité qu'est ce qu'avait comme valeur la variable $_SERVER['DOCUMENT_ROOT'] quand tu mettais le script PHP entre les balises <body> ???
paske ça me parait être une sacré curiosité que la valeur de $_SERVER['DOCUMENT_ROOT'] change en fonction de sa "position" par rapport au HTML de la page :s
++
salut,
tant mieux si ton problème est résolu, mais j'aurais voulu savoir par
simple curiosité qu'est ce qu'avait comme valeur la variable
$_SERVER['DOCUMENT_ROOT'] quand tu mettais le script PHP entre les
balises <body> ???
paske ça me parait être une sacré curiosité que la valeur de
$_SERVER['DOCUMENT_ROOT'] change en fonction de sa "position" par
rapport au HTML de la page :s
tant mieux si ton problème est résolu, mais j'aurais voulu savoir par simple curiosité qu'est ce qu'avait comme valeur la variable $_SERVER['DOCUMENT_ROOT'] quand tu mettais le script PHP entre les balises <body> ???
paske ça me parait être une sacré curiosité que la valeur de $_SERVER['DOCUMENT_ROOT'] change en fonction de sa "position" par rapport au HTML de la page :s
++
Dominique Ottello
"FreakDev" écrivait :
tant mieux si ton problème est résolu, mais j'aurais voulu savoir par simple curiosité qu'est ce qu'avait comme valeur la variable $_SERVER['DOCUMENT_ROOT'] quand tu mettais le script PHP entre les balises <body> ???
paske ça me parait être une sacré curiosité que la valeur de $_SERVER['DOCUMENT_ROOT'] change en fonction de sa "position" par rapport au HTML de la page :s
En fait, il y avait *aussi* une erreur dans l'interprétation des résultats due au fait que dans l'entête le script était : essais_dir.php et dans le corps : essais_dir1.php et, bien sûr, avec une différence entre les deux ; Ô, une petite différence : un "-1" dans le premier qui n'existait pas dans le second.
Il n'y a rien de pire à trouver que les défauts par soi-même créés ! -- Un ordinateur résout des problèmes que nous n'aurions pas sans lui Technique aéronautique : http://aviatechno.free.fr Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
"FreakDev" <Freakdev@gmail.com> écrivait :
tant mieux si ton problème est résolu, mais j'aurais voulu savoir par
simple curiosité qu'est ce qu'avait comme valeur la variable
$_SERVER['DOCUMENT_ROOT'] quand tu mettais le script PHP entre les
balises <body> ???
paske ça me parait être une sacré curiosité que la valeur de
$_SERVER['DOCUMENT_ROOT'] change en fonction de sa "position" par
rapport au HTML de la page :s
En fait, il y avait *aussi* une erreur dans l'interprétation des
résultats due au fait que dans l'entête le script était : essais_dir.php
et dans le corps : essais_dir1.php et, bien sûr, avec une différence
entre les deux ; Ô, une petite différence : un "-1" dans le premier qui
n'existait pas dans le second.
Il n'y a rien de pire à trouver que les défauts par soi-même créés !
--
Un ordinateur résout des problèmes que nous n'aurions pas sans lui
Technique aéronautique : http://aviatechno.free.fr
Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
tant mieux si ton problème est résolu, mais j'aurais voulu savoir par simple curiosité qu'est ce qu'avait comme valeur la variable $_SERVER['DOCUMENT_ROOT'] quand tu mettais le script PHP entre les balises <body> ???
paske ça me parait être une sacré curiosité que la valeur de $_SERVER['DOCUMENT_ROOT'] change en fonction de sa "position" par rapport au HTML de la page :s
En fait, il y avait *aussi* une erreur dans l'interprétation des résultats due au fait que dans l'entête le script était : essais_dir.php et dans le corps : essais_dir1.php et, bien sûr, avec une différence entre les deux ; Ô, une petite différence : un "-1" dans le premier qui n'existait pas dans le second.
Il n'y a rien de pire à trouver que les défauts par soi-même créés ! -- Un ordinateur résout des problèmes que nous n'aurions pas sans lui Technique aéronautique : http://aviatechno.free.fr Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr