PHP include Pb pour 1 des includes

Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 17 juil. 2008 à 23:54
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 21 juil. 2008 à 16:06
Bonjour,
Bon, je commence a m'arracher les cheveux, graaaaave ! tous les includes marchent (header Fr.htm, Menu Fr.htm et footer Fr.htm) que ce soit en français ou en basque SAUF les bannières et pages centrales correspondants auw liens du menu Presentation (les trois pages sont bien présentes pourtant). Voici ce que j'ai comme erreur:
Warning: main( Fr.htm) [function.main]: failed to open stream: No such file or directory in /mnt/102/sda/5/f/etxekolana/index.php on line 120

Warning: main() [function.include]: Failed opening ' Fr.htm' for inclusion (include_path='/mnt/102/sda/5/f/etxekolana/include:.:/usr/php4/lib/php') in /mnt/102/sda/5/f/etxekolana/index.php on line 120


Les sessions sont bien déclarées comme ci-dessous:
$_SESSION[Accueil]['Banner']="./Modules/Banners/Gavarnie2.jpg"; // chargement de l'image du bandeau de l'accueil
  $_SESSION[Accueil]['Location']="./Pages_html/Public/Accueil";   // chargement de la page d'accueil (française par défaut)
// ************************************************
  $_SESSION[Aide]['Banner']="./Modules/Banners/Gavarnie2.jpg"; // chargement de l'image du bandeau de la page d'aide
  $_SESSION[Aide]['Location']="./Pages_html/Public/Aide";      // chargement de la page d'explications sur la navigation (française par défaut)
// =====================================
// ==== Sous-menu (les pages sont dans le dossier Presentation)  ====
  $_SESSION[Objectif]['Banner']="./Modules/Banners/Gavarnie1.jpg";  // chargement de l'image du bandeau de la page Nos Objectifs
  $_SESSION[Objectif]['Location']="./Presentation/Objectif";        // chargement de la page Nos Objectifs
  $_SESSION[Caroussel]['Banner']="./Modules/Banners/Gavarnie1.jpg"; 
  $_SESSION[Caroussel]['Location']="./Presentation/Caroussel"; 
  $_SESSION[Ilargi]['Banner']="./Modules/Banners/Gavarnie1.jpg"; 
  $_SESSION[Ilargi]['Location']="./Presentation/Ilargi"; 


Voyez-vous un truc que, moi, je ne vois plus (a force, je ne verrai pas un éléphant dans un couloir) ?

Le seul truc qui marche c'est l'accueil car dans le fichier menu il est "active" comme ci-dessous:
<TR><TD><A class=mainlevel_active-trans id=menu01 href="index.php?page=Accueil&lang=Fr">Accueil </A></TD></TR>
<TR><TD><A class=mainlevel-trans id=menu02 href="index.php?page=Presentation&lang=Fr"> Pr&eacute;sentation </A></TD></TR>
<TR><TD><A class=mainlevel-trans id=menu03 href="index.php?page=Agenda&lang=Fr"> Agenda </A></TD></TR>


Je suis pourtant en train de faire exactement le même ici (http://txiki.free.fr) et ça fonctionne parfaitement.
Ou est l'erreur ?
Et surtout pourquoi ça fonctionne sous IE6 et pas sous Firefox ? (mis à jour très récemment).

Merci pour votre soutient car je vais craquer ! :-((((

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:

10 réponses

Jearus8 Messages postés 45 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 23 juin 2009
18 juil. 2008 à 00:45
repose toi les yeux et verifie bien si le chemin indiqué pour ton fichier est correct..apparement c'est ça le soucis ;)
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
18 juil. 2008 à 00:54
Merci mais je ne fais que ça. Et tout semble correct. Le fichier Objectif est dans le répertoire Presentation.

je ne fais que ça, vérifier, revérifier vérifier encore et encore et pourtant.... ! C'est bon.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
19 juil. 2008 à 03:59
Salut a tous ceux qui ne sont pas en vacances,
Alors personne pour m'expliquer pourquoi ça fonctionne sous IE et sous Firefox ?
Je trouve ça très bizarre d'autant plus que je l'ai déjà fait pour http://txiki.free.fr et que ça marche.
0
dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
19 juil. 2008 à 04:26
message annulé
0
legulysse Messages postés 121 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 16 janvier 2010 15
19 juil. 2008 à 04:42
tu peux nous montrer la ligne où tu utilises l'include, et les lignes concernés qui la précède, comme des déclarations de variables liées à cet include, sa pourrait aider à t'aider
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
19 juil. 2008 à 15:19
Salut et merci à tous pour vos réponses,
Voici la portion de code dans l'index:
<!-- Début du contenu principal -->
		<div id="frame">
             <?php
               include $_SESSION[$page]['Location']." $lang.htm";
             ?>
		</div>
        <!-- Fin du contenu principal -->

Puis la déclaration de la session pour la page en question (elles se trouvent dans un fichier Init Session Table.php):
// ======== Sous-menu (les pages sont dans le dossier Presentation)  =========
  $_SESSION[Objectif]['Banner']="./Modules/Banners/Gavarnie1.jpg";  // chargement de l'image du bandeau de la page Nos Objectifs
  $_SESSION[Objectif]['Location']="./Presentation/Objectif";        // chargement de la page Nos Objectifs


Les espaces ne sont là que pour la langue (Fr ou Ba) ex: Objectif Fr.htm pour la version française de cette page. Comment j'aurai pu faire pour distinguer les versions ? Et le gars qui l'avait fait, ce site, a lui, utilisé des espaces partout et ça fonctionnait pourtant très bien, Pb, il ne veut plus entendre parler d'informatique (c'est un ingénieur qui a réalisé de très jolis sites)
C'est ainsi sur txiki.free.fr et ça fonctionne alors pourquoi pas ici ?
Je dois vous signaler que c'est OK sous IE6, c'est quand même très bizarre que ça puisse fonctionner avec un navigateur et pas avec Firefox ?


Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
legulysse Messages postés 121 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 16 janvier 2010 15 > txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
19 juil. 2008 à 15:27
essayes de remplacer " $lang.htm" par "_$lang.htm" et de renommer tes fichiers de cette manière : Objectif_Fr.htm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
19 juil. 2008 à 07:05
tu n aurais pas mis un espace devant le nom de ton fichier par hasard
0
legulysse Messages postés 121 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 16 janvier 2010 15
19 juil. 2008 à 15:05
ah oui, c'est ce qu'il a l'air d'avoir fait, les noms de ses fichiers contiennent des espaces.

Il faut que les noms de fichiers et de dossiers ne contiennent aucun espace, tu peux par exemple les remplacer par des _
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
21 juil. 2008 à 00:55
Bon, bonsoir à tous ce qui ont essayé de m'aider mais je crois que j'ai trouvé. Je résume:
Je venais de créer un compte de tests (etxekolana) sur lequel j'ai uploadé mes nouveaux fichiers (http://etxekolana.free.fr). Seule la page d'accueil s'affiche sous Firefox. Sous IE6 ça fonctionne normalement.
Je viens de mettre ces mêmes fichiers sur mon vieux compte de test (http://txiki.free.fr en nommant l'index: indexPottoka.php) pour conserver le mien qui est en cours de reloocking sur ce compte là aussi.

Eh bien ! ça fonctionne. (voir le menu Presentation). Résultat des courses: j'en conclu a un comportement de serveur qui est différent des anciens comptes.

Mon souci maintenant est: Comment faire pour qu'il fonctionne sur un compte récent ? http://ottokadantzan.free.fr est en effet un compte récent !
Quelqu'un aurait-il une proposition a me suggérer ?.

Merci d'avance pour ce qui maitrise bien ces sujets.
0
legulysse Messages postés 121 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 16 janvier 2010 15
21 juil. 2008 à 01:14
est-ce que tu as essayé ce que je t'ai dit au message numero 9 ?
windows gère les espaces dans les noms de fichiers, mais pas linux. Hors la plupart des serveurs tournent sous linux.
Il y a donc des chances que ton vieux serveur soit sous windows, et le nouveau sous linux, d'où le fait que je m'acharne à te faire changer ces espaces par des _
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
21 juil. 2008 à 01:51
Salut legulysse,
Oui, oui, je l'avais déjà tenté avant que tu m'en parles mais je l'ai refait aussi depuis ta réponse. IDEM !
Du coup, j'ai demandé une explication a Free, on va bien voir.
Mon Pb était surtout pas de nommer les ficheir mais comment distinguer les versions avec le
&lang=Fr
. En nommant le fichier Objectf_Fr.htm, même linux considèrera que ce n'est qu'un seul nom de fichier non ?
Il faudrait peut-etre autre chose comme séparateur du nom (objectif) et de la version (Fr), je ne sais pas, je ne sais plus ! je suis perdu.
0
legulysse Messages postés 121 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 16 janvier 2010 15
21 juil. 2008 à 03:13
quand tu as renommé les fichiers, tu avais aussi remplacé " $lang.htm" par "_$lang.htm" ?
mon idée, c'est que lorsque php lis 'include("Objectf Fr.htm")' il essaye d'ouvrir la page 'Fr.htm' à cause de l'espace, d'où le
Failed opening ' Fr.htm'

hum... d'ailleurs, pourquoi n'as tu pas mis de parenthèses pour définir les paramètres de ton include ? peut etre que sa cause également des probèmes.

Ce que tu peux faire, c'est un :
<?php
    $page = $_SESSION[$page]['Location']." $lang.htm";
    echo "affichage de la page : ".$page."<br>";
    include( $page );
?>

afin de vérifier le nom de la page qu'il essaye d'ouvrir.

sinon, je ne comprend pas pourquoi tu utilises des variables de session pour ouvrir tes pages, vu que tu peux passer par $_REQUEST["lang"] pour obtenir la valeur passée par le &lang fourni dans l'adresse.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
21 juil. 2008 à 16:06
Bonjour a tous !
legulysse: c'est pas très clair pour moi dans ce que tu me dis. Mais j'ai mis la portion de code et l'on voit très bien qu'il charge la bonne page pour l'accueil, et uniquement pour l'accueil. Car Objectif Fr.htm effectivement tente de charger le Fr.htm qui n'existe pas.

Or voici ce que j'ai en début de l'index: deux variables Accueil et FR. C'est pour ça que la page d'accueil est trouvée.
<?php

  if (empty($page))
  {
    $page="Accueil";
    $lang="Fr";

     // Initialisation
    include "Php/Init Session Table.php";
    include "Php/Init Preload Images.php";

    echo "<BODY onLoad=\"preloadImages($banner)\">";

   }
   else
   {
     echo "<BODY>";
   }
 ?>

Mais pourquoi DIABLE ça fonctionne avec IE ?
Le site txiki que je suis en train de refaire est construit exactement de la même manière et lui, fonctionne !
"sinon, je ne comprend pas pourquoi tu utilises des variables de session pour ouvrir tes pages, vu que tu peux passer par $_REQUEST["lang"] pour obtenir la valeur passée par le 〈 fourni dans l'adresse."

Tu sais je ne connais pas grand chose en php et ton truc là, comment je pourrai le mettre et où surtout ?

Le dossier session est bien présent à la racine du site sur le serveur.

En tous cas merci pour votre aide a tous !
0
Bonjour,
As-tu pensé à ouvrir un dossier "sessions", car il est necessaire quand on ouvre des sessions avec FREE ?
0