Aller au contenu

Include et PHP 5


Webdesigneuse

Sujets conseillés

Bonjour à tous,

Depuis quelques semaines, j'ai un soucis de reconnaissance d'un script que j'avais développé bien avant la version PHP 5... celui-ci comporte des includes qui ne sont plus reconnus par mon hébéregeur (Céléonet), Voici un extrait du code de ma page :



<div id="header2"></div>
<div id="menu1"></div>
<div>
<? if ($page==qi){
include("qi1.php");
}
elseif($page==qi2){
include("qi2.php");
}
elseif($page==qi3){
include("qi3.php");
}
elseif($page==qi4){
include("qi4.php");
}
elseif($page==profil){
include("profil1.php");
}
elseif($page==profil1){
include("profil1.php");
}
elseif($page==profil2){
include("profil2.php");
}
elseif($page==profil3){
include("profil3.php");
}
elseif($page==profil4){
include("profil4.php");
}
elseif ($page==scola){
include("scola1.php");
}
elseif ($page==scola2){
include("scola2.php");
}
elseif ($page==scola3){
include("scola3.php");
}
elseif($page==activ){
include("activ1.php");
}
elseif($page==activ2){
include("activ2.php");
}
elseif($page==activ3){
include("activ3.php");
}
elseif($page==biblio){
include("biblio1.php");
}
elseif($page==biblio2){
include("biblio2.php");
}
elseif($page==biblio3){
include("biblio3.php");
}
elseif($page==biblio4){
include("biblio4.php");
}
elseif($page==liens){
include("liens1.php");
}
elseif($page==liens2){
include("liens2.php");
}
elseif($page==liens3){
include("liens3.php");
}
elseif($page==liens4){
include("liens4.php");
}
elseif($page==mot){
include("mot.php");
}
elseif($page==psy){
include("psy1.php");
}
elseif($page==psy2){
include("psy2.php");
}
elseif($page==psy3){
include("psy3.php");
}
elseif($page==asso){
include("asso1.php");
}
elseif($page==asso2){
include("asso2.php");
}
else{
include("intro.php");
}
?>
</div>
<div id="mot"><a href="index.php?page=mot"></a></div>
<div id="fois"><a href="index.php?page=intro"></a></div>
<div id="menu2"></div>
<div id="profil"><a href="index.php?page=profil"></a></div>
<div id="test"><a href="index.php?page=qi"></a></div>
<div id="psy"><a href="index.php?page=psy"></a></div>
<div id="menu3"></div>
<div id="scola"><a href="index.php?page=scola"></a></div>
<div id="activite"><a href="index.php?page=activ"></a></div>
<div id="asso"><a href="index.php?page=asso"></a></div>
<div id="liens"><a href="index.php?page=liens"></a></div>
<div id="biblio"><a href="index.php?page=biblio"></a></div>
<div id="icone"></div>
<div id="pat"><a href="http://www.patricia.miguet.name"></a></div>
<div id="footer"></div>

Ma question est simple... est-ce que ce qu'il existe une nouvelle méthode d'include adaptée à PHP5 ? ^^

Merci pour votre aide !

Modifié par Webdesigneuse
Lien vers le commentaire
Partager sur d’autres sites

C'est p-e un problème d'emplacement des fichiers du site qui a changé suite au changement d'hébergeur.

sinon tu peux optimiser ton code en mettant

include($page.".php");

Ca eviterait d'avoir un grand nombre de if elseif

Lien vers le commentaire
Partager sur d’autres sites

oui ;-) ca veut dire qu'il faudrait renommer certaines pages ou changer la variable lors de l'appel

exemple pour cette page :

if ($page==qi){
include("qi1.php");
}

soit changer la valeur "qi" par "qi1" sur les urls index.php?page=qi1

ou renommer qi1.php par qi.php

Pareil pour les autres pages concernées

Lien vers le commentaire
Partager sur d’autres sites

C'est p-e un problème d'emplacement des fichiers du site qui a changé suite au changement d'hébergeur.

sinon tu peux optimiser ton code en mettant

include($page.".php");

Ca eviterait d'avoir un grand nombre de if elseif

Attention, cela peut s'avérer dangereux (possibilité d'inclure n'importe quelle page PHP du site).

Il vaudrait mieux au préalable créer un array d'inclusions possibles puis, si la page appelée y est bien présente, faire l'include tel que Nicolas le dit.

Lien vers le commentaire
Partager sur d’autres sites

C'est vrai ;-) vu que je rewrite les urls je n'ai pas ce problème. Dans mon cas le fichier php n'est pas connu mais là c'est différent tu fais bien de le préciser.

Lien vers le commentaire
Partager sur d’autres sites

Plusieurs choses :

if ($page==qi){

Tu as oublié de limiter tes chaines de caractères donc le test serait plus celui-ci :

if ($page=="qi"){

Ensuite, en PHP5 il faut éviter d'utiliser les shorts tag, utilises donc <?php au lieu de <? par défaut, normalement, ils ne sont pas autorisés

Enfin, ta série de test, c'est le meilleur moyen de faire une erreur, simplifie, d'autant plus que ta structure semble s'y prêter, essaye plutôt un code comme celui-ci :



<div id="header2"></div>
<div id="menu1"></div>
<div>
<?php
$liste_pages = array(
"qi", "qi2", "qi3", "qi4", "profil", "profil1", "profil2", "profil3", "profil4"
"scola", "scola2", "scola3", "activ", "activ2", "activ3", "biblio", "biblio2",
"biblio3", "biblio4", "liens", "liens2", "liens3", "liens4", "mot", "psy",
"psy", "psy2", "psy3", "asso", "asso2");

if ( in_array($page, $liste_pages)) include($page.".php");
else include("intro.php");
}
?>
</div>
<div id="mot"><a href="index.php?page=mot"></a></div>
<div id="fois"><a href="index.php?page=intro"></a></div>
<div id="menu2"></div>
<div id="profil"><a href="index.php?page=profil"></a></div>
<div id="test"><a href="index.php?page=qi"></a></div>
<div id="psy"><a href="index.php?page=psy"></a></div>
<div id="menu3"></div>
<div id="scola"><a href="index.php?page=scola"></a></div>
<div id="activite"><a href="index.php?page=activ"></a></div>
<div id="asso"><a href="index.php?page=asso"></a></div>
<div id="liens"><a href="index.php?page=liens"></a></div>
<div id="biblio"><a href="index.php?page=biblio"></a></div>
<div id="icone"></div>
<div id="pat"><a href="http://www.patricia.miguet.name"></a></div>
<div id="footer"></div>

en enlevant le 1 des fichiers inclus, cela allège ton test.

Par contre, il est fort probable, que tes fichiers ne soient pas la non plus.

Lien vers le commentaire
Partager sur d’autres sites

Salut

Par contre, il est fort probable, que tes fichiers ne soient pas la non plus.

Si si, il suffit de les appeler directement, modifies l'URL, tu verras.

C'est ce que je pensais aussi mais j'ai vérifié et on les trouve bien, ils sont à la racine du site et pas dans un répertoire hors web, mais ce ne sont pas des données sensibles donc pas un problème.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...