|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2009 Messages : 100 ![]() |
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 Code :
Code :
Code :
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. |
||||||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : mai 2006 Messages : 501 ![]() |
Bonjour,
En php un bloc d'instruction peut commencer dans un fichier et se terminer dans un autre. En fait c'est comme si le serveur qui interprète le code ne voyait qu'un seul fichier, tous les fichiers étant mis bouts à bouts en fonction des inclusions. Cependant pour permettre une bonne lisibilité du code il faut éviter de faire des if, for, while, ... qui commencent dans un fichier et se termine dans un autre... |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2009 Messages : 100 ![]() |
C'est ce que je pensais aussi qu'il n'y aurait pas d'importance à les séparés car au final il serait interprété comme un seul et même code. Mais là j'ai bien une erreur parce que mon if/else est séparé, plus précisément parce que mon else est ouvert dans un fichier et fermer dans un autre.
Je viens de faire le test réunissant uniquement ce bloc d'instruction dans mon fichier index et là pas de soucis. De quoi celà pourrrait-il venir ? |
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 706 ![]() |
Salut
Citation:
De mémoire il me semble avoir lu l'inverse. D'ailleurs, ça sous entends qu'il serait possible aussi de créer le début d'une classe ou d'une fonction dans un fichier et la suite dans un autre. Ca me semble improbable. Par curiosité j'ai essayé (debut_if.php/fin_if.php), et ça me renvoie une erreur de syntaxe : Citation:
Code :
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||||
|
|
00
|
|
|
#5 | ||||||
|
Membre expérimenté
![]() Inscription : mai 2006 Messages : 501 ![]() |
Citation:
Citation:
Je crois que j'ai mélangé ce que je voulais dire... Voici ce qui est possible de faire : Code :
Code :
|
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com