Bonjour,
Ma question est simple même si apparemment je pense avoir trouver la réponse : es-ce possible de commencer un if/else dans un fichier "header.php" et de le finir dans un fichier "footer.php", d'inclure ça dans un "index.php" et que ça fonctionne ?
Pour l'explication je suis sur un petit site perso et je fais mes page de la manière suivante : un fichier "header.inc.php" qui contient le code de ma page depuis <html> en passant par le menu ainsi que tout ce qui est fixe pour le haut de chaque page jusqu'à l'ouverture de ma div de contenu variable, et un fichier "footer.inc.php" qui contient le code de la fermeture de ma div de contenu variable jusqu'à </html>. Ces deux fichiers sont inclus dans un "index.php" qui contient les variables de paramétrage des pages, et mon contenu variable.
Maintenant ce que je veux faire, c'est ouvrir une connexion BDD, vérifier si elle est correcte, si c'est le cas j'affiche le contenu variable, sinon j'affiche un message d'erreur, mais dans les deux cas je veux que la page s'affiche tout de même (logo, menu, etc.. et pas juste un message d'erreur).
Cette manière de fonctionner m'oblige donc à ouvrir un if/else dans un fichier et le fermer dans un autre, et l'erreur que j'ai semble venir de là. Le code assemblé dans un même fichier aucun problème, mais séparé ça ne marche pas. Pour vous es-ce possible ou y-a-t-il un moyen de le faire fonctionner ainsi ?
Pour info comme je n'ai pas le projet sur moi je fais mes essais sur des pages de test dont voici les codes :
header.php
footer.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <html> <head> <title>Test connexion BDD :: <?php echo $title; ?></title> </head> <body> <?php include("class.mysql.php"); include("config.php"); $mysql = new MySQL; $mysql->open($host,$dbname,$user,$password); ?> <div> <?php if(!$mysql->isConnected()){ echo $mysql->getConnectionErrorMessage(); }else{ ?>
index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php $mysql->close(); } ?> </div> <div> Mon footer </div> </body> </html>
Merci d'avance pour vos réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php $title = "Test 1"; include("header.php"); ?> <div>Mon contenu</div> <?php include("footer.php"); ?>
PS : ma solution actuelle serait de faire mon if/else directement dans le index.php mais cela m'oblige à faire un copier-coller de cette condition dans chacune de mes pages (ou à faire une page modèle) et en cas de changement de fonctionnement d'accès à la base de données (j'utilise un classe perso pour l'accès à MySQL car je vais héberger mes pages chez Free et après recherche PDO semblerai ne pas ou mal fonctionner chez eux) cela m'obligerait à parcourir tous les fichiers pour faire les modifications.
Partager