le 20/05/2007 à 23:49
croco
Bonjour,
Voilà mon problème :
J'avais un index.html automatiquement sur la vraie page structurant le site:
répertoire /site/squelette/site.php
site.php mettant en place les div nécessaire et incluant 5 contenus : le sommet, le sommaire à gauche, une marge droite, le pied de page et la corps de page, ceci par des 'include', constitués par des fichiers php situés eux aussi dans /site/squelette/.
Par exemple, pour la partie haute, cela donnait dans site.php le code suivant :
Et dans ongletFR.php se trouvait le code suivant (entre autres éléments qui ne posent pas problème et que je ne copie pas):
Tout cela fonctionnait mais je veux me débarrasser du renvoie de page et donc je déplace le fichier site.php à la racine, en le renommant index.php. Ceci implique bien sûr de faire les modifications nécessaires dans tous les fichiers liés, sans oublier ce qui est en include.
C'est aussi l'occasion de reprendre le code en systématisant les chemins définis sur la base de $_SERVER['DOCUMENT_ROOT'];
Le code devient, pour les mêmes éléments :
et pour onglet.php
Or ceci renvoie l'erreur suivante :
Warning: main(): Unable to access /home/ischyrochampsa/www/site/titres/FR/_titre.php in /home/ischyrochampsa/www/site/squelette/ongletFR.php on line 29
C'est '_titre.php' qui est cherché au lieu de 'introFR_titre.php' : j'en déduis que onglet.php est interprété avant d'être inclus, donc il renvoie un chemin sans que la variable $page ait été intégrée au nom du fichier.
=> pourquoi ce changement de comportement par rapport au chemin relatif d'origine (quand site.php incluant onglet.php était dans le même répertoire) ?
En faisant passer la variable par un GET ça rentre dans l'ordre, mais j'aimerais savoir pourquoi le code devient interprété (donc que ça comporte comme si j'avais mis comme chemin www.mondomaine.fr/blabla....).
J'aurais d'autres questions mais je préfère revoir celles-ci à tête reposée.
Voilà mon problème :
J'avais un index.html automatiquement sur la vraie page structurant le site:
répertoire /site/squelette/site.php
site.php mettant en place les div nécessaire et incluant 5 contenus : le sommet, le sommaire à gauche, une marge droite, le pied de page et la corps de page, ceci par des 'include', constitués par des fichiers php situés eux aussi dans /site/squelette/.
Par exemple, pour la partie haute, cela donnait dans site.php le code suivant :
<?php
if (!isset($_GET['page'])) {$page= 'introFR';} else {$page= $_GET['page'];}
// cette variable servant à appeler les contenus dynamiques pour le corps de page, le titre, le header...
.........
echo "<div id=\"haut\">\n";
include "ongletFR.php";
echo "</div>\n";
.........
?>
Et dans ongletFR.php se trouvait le code suivant (entre autres éléments qui ne posent pas problème et que je ne copie pas):
<?php
include "../titres/FR/".$page."_titre.php";
?>
Tout cela fonctionnait mais je veux me débarrasser du renvoie de page et donc je déplace le fichier site.php à la racine, en le renommant index.php. Ceci implique bien sûr de faire les modifications nécessaires dans tous les fichiers liés, sans oublier ce qui est en include.
C'est aussi l'occasion de reprendre le code en systématisant les chemins définis sur la base de $_SERVER['DOCUMENT_ROOT'];
Le code devient, pour les mêmes éléments :
<?php
$chemin_racine=$_SERVER['DOCUMENT_ROOT'];
.............
if (!isset($_GET['page'])) {$page= 'introFR';} else {$page= $_GET['page'];}
// cette variable servant à appeler les contenus dynamiques pour le corps de page, le titre, le header...
.........
echo "<div id=\"haut\">\n";
include $chemin_racine."/site/squelette/ongletFR.php";
echo "</div>\n";
.........
?>
et pour onglet.php
<?php
include "".$chemin_racine."site/titres/FR/".$page."_titre.php";
?>
Or ceci renvoie l'erreur suivante :
Warning: main(): Unable to access /home/ischyrochampsa/www/site/titres/FR/_titre.php in /home/ischyrochampsa/www/site/squelette/ongletFR.php on line 29
C'est '_titre.php' qui est cherché au lieu de 'introFR_titre.php' : j'en déduis que onglet.php est interprété avant d'être inclus, donc il renvoie un chemin sans que la variable $page ait été intégrée au nom du fichier.
=> pourquoi ce changement de comportement par rapport au chemin relatif d'origine (quand site.php incluant onglet.php était dans le même répertoire) ?
En faisant passer la variable par un GET ça rentre dans l'ordre, mais j'aimerais savoir pourquoi le code devient interprété (donc que ça comporte comme si j'avais mis comme chemin www.mondomaine.fr/blabla....).
J'aurais d'autres questions mais je préfère revoir celles-ci à tête reposée.