Bonjour, j’ai un fichier index.php qui appelle un autre: menu.php via la fonction include. Le fichier css de menu.php est stocké dans un autre dossier. Mon problème est le suivant: lorsque je lance ma page index.php elle génère correctement ma page mais sans inclure la page menu.php. Je n’ai pas trouvé ma réponse sur d’autres forum … Je mets un bout de code des 2 fichiers pour que vous compreniez mieux le problème.
index.php
Test
Recherche:
<?php include "menu.php"; ?>
Accueil
menu.php
Je vous évite la suite interminable.
J’ai donc un dossier contenant index.php, menu.php et un dossier nommé: css contenant stylemenu.css. Wampserveur est bien allumé.
(Pour être clair)
Tu as la balise qui va se trouver incluse dans la balise et c’est ça qui embrouille le navigateur je pense.
Donc, la balise dans menu.php (ou plutôt le groupe <link … />), je la placerai plutôt dans index.php, avant .
De toutes façons, après le passage du préproc, il ne te restera plus qu’un fichier html.
Attention à ne pas confondre php & html. Tu peux inclure tout et n’importe quoi en PHP, tant que c’est syntaxiquement correct, mais tu ne peux pas rendre (ou produire) du HTML n’importe comment.
En outre, ça :
[b]<?php include 'menu.php'; ?>[/b]
menu.php ne peut produire / contenir que du code HTML valide dans l’élément
Il y a qu’un include pour l’instant. Je ne comprend pas tes explications. Tu essayes de me dire que je ne peux pas générer une page en HTML en appelant une page avec du code HTML ou que je ne peux pas mettre d’include dans une div ? Je débute -_-
Et quand je dis qu’il y a rien qui se passe je veux dire que mon navigateur affiche correctement ma page index.php et génère également le php de cette page mais c’est comme s’il ne lisait pas le include, donc c’est comme s’il n’était pas codé.
oui, plusieurs fichiers css pour une page html, c’est possible. C’est même conseillé si tu as beaucoup de définitions de style, ça t’évitera de parcourir des fichiers css de plusieurs pages.
Non, il te disait que comme tu inclue ton menu.php entre deux balise
, tu ne dois y mettre que ce que tu as le droit d’y mettre. Dans ton cas, les balises ne peuvent être placées à cet endroit. Le navigateur essaiera de la digérer, il n’y aura pas de “plantage” à proprement parler, mais les résultats seront imprévisibles, tout dépendra de comment le navigateur décidera d’interpréter cette erreur de syntaxe.
Sinon nous décrire avec plus de précisions les dysfonctionnements, illustrés de quelques screenshot, nous aiderait beaucoup oui.
Une fois que tu as ouvert le index.php dans ton navigateur, qu’est-ce te donne l’affichage du code source ? Y retrouves tu les balises
… de ton fichier menu.php ?
preproc = pré-processeur
Il va faire un premier passage sur ton code pour en traiter toutes les instructions qui le concerne. Ce résultat sera traité à nouveau par un autre programme (ici un navigateur web), c’est pourquoi on parle de “pré-”.
Y a d’autres pré-processeur que PHP, notamment en xml ou encore en c (les #define). D’ailleurs, c’est ce que veux dire PHP : PHP : Hypertext Preprocessor (c’est un acronyme récursif :s)
Edité le 25/09/2013 à 20:40
Expliquer ou est le problème est compliqué, avec ou sans le include ca ne fonctionne pas, il y a aucune différence. Je ne sais pas si c’est important mais ma page menu.php n’est pas limité par les balises de php. j’ai lu sur un forum qu’il falait mais ca me semble incorrect, juste ?
Sinon, pour ton édite, j’ai enlevé le head et mis le lien vers la feuille de css dans index.php.
Edité le 25/09/2013 à 20:48
Justement, nous dire que “cela ne fonctionne pas” ce n’est pas suffisant.
Ca ne fonctionne pas :
rien dans le navigateur ? page blanche ?
il te dit qu’il y a une erreur php ?
qu’utilises tu pour développer ? wamp ? lamp ?
Dis toi bien que nous ne sommes pas devant ton PC avec toi, tu nous “guide aux instruments”, et si tu ne nous donnes pas assez de détails on ne sait pas vers où on se dirige.
Ensuite, non un fichier php n’a pas besoin d’obligatoirement commencer et finir par <?php et ?>. Donc ce n’est pas le souci.
En fait, on conseille même de ne pas fermer par ?> dans les fichiers en include (généralement pour éviter les erreurs de type “header already sent”).
<?php
/* il faut demarrer la session*/
session_start();
if (empty($_SESSION['id'])) //les membres connecte ne peuvent pas s'inscrire
{
?>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
Test.be
Ce n’est pas ce qu’on te demande en fait.
On voudrait que tu nous donnes le code source de tes pages, tel qu’il arrive dans ton navigateur quand tu ouvres ta page.
Ca permettra de voir si l’include a fonctionné correctement et si le code qui en résulte est correct.
La page n’est pas sur un serveur mais sur wamp, donc serveur local. Donc mon code, comme vous le saviez, est de toute manière le même que dans mon code.
Ah bha voila, je me demandais bien quand mon navigateur allait m’afficher des messages d’erreur … Ok merci, j’étais pas en localhost tout bêtement -_-" Un grand merci