Aller au contenu

Sujets conseillés

Posté (modifié)

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
Posté

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

Posté (modifié)

Eh bien, ce qui est curieux, c'est que je n'ai pas de message d'erreur... c'est juste que le script ne fonctionne pas et la page appelée ne s'include pas.

Voici le lien du site en l'état actuel

du coup, aucun lien ne fonctionne...

Modifié par Webdesigneuse
Posté

Tu devrais interroger la variable $page par un "echo" sur une page test pour voir si elle contient bien la bonne valeur.

Posté

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

Posté

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.

Posté

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.

Posté

N'as-tu pas modifié ton .htaccess qui peut-être défini ton dossier d'include par défaut ?

Posté

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.

Posté

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.

Posté

J'ai essayé hier soir sur quelques uns et j'avais une erreur, la, cela semble bon

Veuillez vous connecter pour commenter

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



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