Salut a tous je vous communique donc mon premier soucis sur ce forum.

Voila pour vous résumer j'étudie donc les bases du Front End Dévellopement, j ai donc bien sur appris les fameuse base sur openclassroom HTML 5 / CSS 3, ayant des difficultés je m'entraine donc a manipuler le CSS sur des projet plus ou moins bidon pour au final faire un petit projet pour mon fourm mon forum.

Donc pour commencer je fais mon code html, puis j ai vu comment faire des menus en html sauf que pour eviter de répéter mon code a chaque fois j'ai décider de le passer en PHP, j ai donc mis mon projet sur WAMPSERVER, et j'ai crée mon menu dans un fichier "menu.php" que voici

<div id="div1">
                <br>
            <h1 class="ACCEUIL">BOUTIQUE OFFICIEL EXTRA-LEAK'S</h1>
            <nav class="menu_nav">
                <ul class="ul_style">
                    <li class="btn"><a href="index.php"><i class="fa fa-home"></i> ACCEUIL</a></li>
                    <li class="btn"><a href="Boutique.php"><i class="fa fa-cart-plus"></i> BOUTIQUE</a></li>
                    <li class="btn"><a href="https://www.extra-leaks.com"><i class="fa fa-chrome"></i> FORUM</a></li>
                    <li class="btn"><a href="contact.html"><i class="fa fa-envelope"></i> CONTACT</a></li>
                    <li class="btn1"><a href="Inscription.html"><i class="fa fa-user-plus"></i> S'inscrire</a></li>
                    <li class="btn1"><a href="Connexion.html"><i class="fa fa-user"></i> Connexion</a></li>
                </ul>
            </nav>
            </div>

Ayant fais quelque recherche j'ai pus trouver la ligne de code en php sur le net j'ai donc appronfondie ma recherche pour l'inclure et mis en place le code que voici

<?php;
    require_once("chemin/menu.php");
 ?>

Mon soucis etant que le code en php a l'aire de fonctionner il ne m'affiche pas tout le résultat

A quoi sa devrais ressembler : image sans erreur
Image dans ma page ou je veut faire apparaitre mon menu par le biais de php image

Mon fond apparait mais pas mon menu, je vous mais mon code css a disposition pour que vous puisser consultez au besoin

body
{
    margin-left: 0px;
    margin-right: 0px;
    margin-top: 0;
    background-color: #95a5a6;
    text-decoration: none;
}

.ACCEUIL
{
    font-family: impact;
    font-size: 35px;
    color: #ecf0f1;
    text-align: center;
    margin-top: 0;

}

div
{
    margin-left: 0px;
    margin-right: 0px;
}

#div1 
{
    padding-bottom: 3px;
    /*background-color: #34495e;*/  
    background-image: url(Images/png/background1.png);
}

li.btn
{
    margin-left: 3px;
    padding: 10px;
    display: inline-block;
    float: none;
    background-color: #2980b9;
    border-radius: 3px;
    color: white;
    transition: 1s;

}
ul.ul_style
{
    padding-left: 4px;
}
li.btn:hover 
{
    background-color: #95a5a6;
}

li.btn1 
{
    margin: 3px;
    margin-right: 7px;
    padding: 10px;
    display: inline-block;
    float: right;
    list-style-type: none;
    background-color: #2980b9;
    border-radius: 3px;
    color: white;
}

li.btn1:hover
{
    background-color: #95a5a6;
}

a
{
    color: white;
    text-decoration-line: none;
}

Merci a ceux qui m'aiderons

5 réponses


caveira
Auteur
Réponse acceptée

Merci pour ces precieux conseil les gas vous m'avez  bien debloquer dans mon soucis je vais my remettre rapidement  quand au sujet sachant que toutes vos reponse m'on ete utile  je declare ce sujet resolue

Salut,
Essaye donc avec ceci :

<?php
  include 'chemin/menu.php';
?>

Salut,

Tu peux commencer par afficher les messages d'erreurs de PHP pour savoir si ça vient d'un problème au niveau de l'inclusion de ton fichier (erreur de chemin) ou dans le fichier inclus.

Quand tu fais un include le chemin transmis est relatif au fichier PHP qui contient le code par exemple :

Si tu as :

/includes/menu.php
/boutique/Boutique.php

et dans Boutique.php tu fais :

<?php
include ("includes/menu.php");
?>

alors PHP va chercher le fichiers suivant : /boutique/includes/menu.php
Donc dans ce cas il faut faire :

<?php
include("../includes/menu.php");
?>

Un autre truc hors sujet : Attention aux majuscules / minuscules.

Sur Windows il ne fait pas la différences mais quand tu va ballancer ton site en ligne sur un serveur linux il le fera !

Donc prends l'habitude de nommer tes fichiers tout en minuscules ou au moins garder une logique pour éviter des erreurs bêtes.

Dans ton menu tu as :

  • index.php (tout minuscule)
  • Boutique.php (une majuscule)
  • contact.html (tout minuscule)
  • Inscription.html (une majuscule)
  • Connexion.html (une majuscule)

Pierre-Louis

caveira
Auteur

Merci a vous alors effectivement au sein de vos réponse j ai corriger l'erreur
@Roak en effet je posséder ce code sauf que la ou je l'avais trouver il y avais ce code comme ceci
<?php
include (C:\wamp64\www\Boutique/menu.php);
?>

@Kaimite: en effet y avais bien un erreur de chemin j ai du inclure tous le chemin depuis la racine c:/ alors que dans certains tutoriels la personne n'avais pas a le faire.

@cradlenico - Merci pour ton conseil des majuscule & des class en effet javais choisi de differncier les class pour le reste du site et de consacré que des ID au menu.

  • Concernant le menu.php si j ai compris je dois le mettre dans un dossier includes ? mais quel est la différences par a si je le laisse a la racine du site ?
  • par rapport au css c'est la que je patauge le plus l'otpimisation reste encore un peu flou ne maitrisant pas encore tous les notions de CSS

Merci a vous tous cas
Skype: SonyModding

Bonjour,

Tu n'es pas obligé de mettre ton menu dans un dossier "includes" ça c'est une question d'organisation, c'est à toi de voir comment tu organises les fichiers sur ton site.

Si tu veux bien débugger ton code voici mon conseil :

1- afficher les messages d'erreur de PHP (https://www.grafikart.fr/formations/deboguer-code-php)

Si tu n'as pas d'erreur sur ton include c'est que c'est peut être a cause des CSS, donc vire les appels aux fichiers CSS, tu aura un site sans styles mais au moins tu verras si ton menu s'affiche. Si ce n'est pas le cas alors ce n'est pas les CSS !

Attention dans les chemins si tu mélange les "/" et "\"
Je ne sais pas comment ça fonctionne sur windows, je développe sous Mac et Linux donc je n'utilise que des "/" dans les chemins.

Un autre petit conseil :
Tu peux utiliser une constante pour définir une fois pour toute le chemin d'accès de ton site.

define("HOME_DIR", "C:\wamp64\www");

et ensuite dans ton dode tu fais :

include (HOME_DIR . "/Boutique/menu.php");

Comme ça quand tu balance ton site en ligne sur un serveur il te suffit de changer la constante et tout ton site est OK, sinon t'es bon pour faire plein de remplacement dans ton code.

define("HOME_DIR", "/home-linux/dossier-client/dossier-site");

Pierre-Louis