Webdesigneuse Posté 27 Mars 2012 Posté 27 Mars 2012 (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é 27 Mars 2012 par Webdesigneuse
Nicolas Posté 27 Mars 2012 Posté 27 Mars 2012 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
Webdesigneuse Posté 27 Mars 2012 Auteur Posté 27 Mars 2012 (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é 27 Mars 2012 par Webdesigneuse
Nicolas Posté 27 Mars 2012 Posté 27 Mars 2012 Tu devrais interroger la variable $page par un "echo" sur une page test pour voir si elle contient bien la bonne valeur.
Webdesigneuse Posté 27 Mars 2012 Auteur Posté 27 Mars 2012 Ah oui, merci Nicolas, je crois que c'est le moment de faire un grand ménage dans mon code
Nicolas Posté 27 Mars 2012 Posté 27 Mars 2012 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
captain_torche Posté 27 Mars 2012 Posté 27 Mars 2012 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.
Nicolas Posté 27 Mars 2012 Posté 27 Mars 2012 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.
adn Posté 28 Mars 2012 Posté 28 Mars 2012 N'as-tu pas modifié ton .htaccess qui peut-être défini ton dossier d'include par défaut ?
Dadou Posté 29 Mars 2012 Posté 29 Mars 2012 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.
Dudu Posté 29 Mars 2012 Posté 29 Mars 2012 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.
Dadou Posté 29 Mars 2012 Posté 29 Mars 2012 J'ai essayé hier soir sur quelques uns et j'avais une erreur, la, cela semble bon
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant