Probleme avec mon site

Résolu
Bonjour à tous,

bonjour à tous,
voilà je suis en informatique et j'ai un gros problème.
Je dois présenter un site avec des produit en rapport avec un sujet pour mon travail de fin d'étude. mon site est presque fini je l'ai héberger sur 000webhost, il manque que l'inscription et le contenu. mais mon problème ce situe au début du site, en faite la bannière et le menu en dessous ce répète en ce décalant, jusqu'à arriver a un texte continu avec titre et menu . j'ai essayé de régler ce problème par moi même mais je n'y arrive pas je vois pas ou il est :/ cela fait 2 jours que j'essaie de le régler mais pas moyen...

voici mon site https://www.000webhost.com/migrate?static=true vous pouvez voir mon problème d'entrer :/

j'ai aussi un probléme avec une page

produit

ça me remet la page de l'accueil :/ pourtant dans mon switch c'est bien la page produit.php qui est lié

pourriez vous m'aidez s'il vous plait??? :'(

merci d'avance

4 réponses

Résumé de la discussion

Un souci d'affichage en PHP provoque la répétition et le décalage de la bannière et du menu, transformant l'entrée en texte continu et altérant la navigation entre la page d'accueil et les pages produits. Plusieurs réponses suggèrent de vérifier la logique du switch et l'usage de $_GET['page'], en recommandant d'utiliser include_once et de tester la valeur récupérée avant le switch. D'autres conseils insistent sur le fait que l'absence de vérification entraîne l'inclusion répétée de index.php et recommandent de structure l'état initial avec isset et un cas par défaut vide. En pratique, les échanges montrent l'importance de placer le test isset avant le switch et d'afficher la valeur de page lors du débogage pour éviter les redirections involontaires vers l'accueil.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour,

    Dans ton code, qu'as-tu mis dans ton <div class="milieu"> ?
    Le site est en php ?
    1. dans mon css pour le milieu j'ai
      .milieu
      {
      display:block;
      width:900px;
      height:auto;
      margin-left:10px;
      margin-right:10px;
      min-height:450px
      }
      dans mon index j'ai :
      <div class="milieu">
      <?php include('switch.php'); ?>
      </div>

      et oui le site est en Php
      1. Contributeur
        et qu'y a-t-il dans switch.php ?
        Tu pourrais remplacer include par include_once pour tester.
      2. switch. php
        <?php

        if (! isset($_GET['page']))
        {
        include('./index.php');

        } else {

        $page = $_GET['page'];

        switch($page)
        {
        case 'Accueil':
        include('./home.php');
        break;

        case 'quisommesnous':
        include('./quisommesnous.php');
        break;

        case 'Produits':
        include('./p.php');
        break;

        case 'services':
        include('./services.php');
        break;

        case 'partenaires':
        include('./partenaires.php');
        break;

        case 'presse':
        include('./presse.php');
        break;

        case 'contact':
        include('./contact.php');
        break;

        case 'inscription':
        include('./inscription.php');
        break;

        default:
        include('./home.php');
        break;
        }
        je vais tester include_once
      3. Contributeur
        Dans ton /home.php par exemple, est-ce que tu inclus l'en-tête ?
        Vérifie la valeur de ton $page par un petit echo quelque part.
      4. l'entete du home c'est simplement " <p><h3 class="titre"> <u>Acceuil</h3></u></p>"
        tout est dans mon css
        sinon comment je dois faire avec echo? désolé je suis encore un néophyte ^^ j'ai des fois du mal pour certaine choses
      5. le "include_once " a été utile j'ai plus autant de repetition qu'avant j'en ai plus q'une de répétition merci :p
    2. Contributeur
      Grunt...
      Dans ton index.php, tu as l'en-tête ou sinon c'est un appel php à l'en-tête ?
      1. j'ai ça

        </head>
        <body>
        <div class="center">
        <div class="entete_1" >

        </div>
        <div class="entete_menu">
        <div id="menu">
      2. ul>
        <li><a href="index.php?page=acceuil">Acceuil</a></li>
        <li><a name="presentation">Présentation</a>
        <ul>
        <li><a href="index.php?page=quisommesnous">Qui sommes nous ?</a></li>
        <li><a href="index.php?page=produits">Produits</a></li>
        </ul>
        </li>
        <li><a href="index.php?page=services">Services</a></li>
        <li><a href="index.php?page=partenaires">Partenaires</a></li>
        <li><a href="index.php?page=presse">Presse</a></li>
        <li><a href="index.php?page=contact">Contact</a></li>
        <li><a href="index.php?page=inscription">Inscription</a></li>

        </ul>
        </div>

        </div>

        <div class="milieu">
        <?php include_once('switch.php'); ?>
        </div>

        <div class="basdepage">
        Copyright 2011 - Guerriero. M
        </div>
        </div>
        </body>
        </html>
      3. Contributeur
        Tu as les div entete_menu ou menu dans tes autres pages ?
      4. dans mon css :
        #menu

        {
        height:50px;
        }

        #menu ul
        {
        margin:0;
        padding:0;
        list-style-type:none;
        text-align:center;
        }

        #menu li
        {
        float:left;
        margin:0;
        padding:0;
        background-color:gray;
        font-size:1.0em;

        }
        #menu li a {
        display:block;
        width:119.57499310000000009px;
        color:white;
        text-decoration:none;
        padding:4.5px;
        }
        #menu li a:hover {
        color:#54af30;

        }
        #menu ul li ul {
        display:none;
        }
        #menu ul li:hover ul {
        display:block;
        }
        #menu li:hover ul li {
        float:none;
        }
        #menu li ul {
        position:absolute;
        }
        .entete_1
        {
        width:900px;
        height:220px;
        text-align:center;
        background-image:url('img/bann11.png');
        background-repeat:no-repeat;
        background-position:center;
        }
        .entete_menu
        {
        width:900px;
        height:35px;
        text-align:right;
        }
      5. Contributeur
        Je me répète =)
        As-tu les div entete_menu ou menu dans tes pages home, index, et tout le reste ?

        Et comment appelles-tu ta page switch.php ?
    3. Contributeur
      Rho !!

      Bon, fais un echo de ta variable $page pour savoir ce qu'il récupère avant de switcher. D'ailleurs attention à ta variable, si elle a un s ou pas. Je pense qu'il va dans le default puisqu'il ne trouve pas la variable $page dans ta liste. (c'est pour ça, attention aux majuscules, au s et à l'orthographe !)

      Est-ce qu'on peut voir ta page switch au final ? Parce que je me base sur la première version.
      1. j'ai reussi a regler le problemes ça me remet toute les bonnes page sauf une ( celle produit qui reste l'accueil)

        mon switch complet

        <?php
        if (! isset($_GET['page']))
        {
        echo "";
        } else {
        $page = $_GET['page'];
        }
        if (! isset($_GET['page']))
        $page = $_GET['page'];
        switch($page)
        {
        case 'Accueil':
        include('./home.php');
        break;

        case 'quisommesnous':
        include('./quisommesnous.php');
        break;

        case 'Produit':
        include('./produit.php');
        break;

        case 'services':
        include('./services.php');
        break;

        case 'partenaires':
        include('./partenaires.php');
        break;

        case 'presse':
        include('./presse.php');
        break;

        case 'contact':
        include('./contact.php');
        break;

        case 'inscription':
        include('./inscription.php');
        break;

        default:
        include('./home.php');
        break;
        }

        ?>
      2. Contributeur
        Euh... Alors déjà un petit commentaire de ton code. Je te dis ce qu'il fait :

        1) Si on ne récupère pas de $_GET, on n'affiche rien. Sinon $page = $_GET
        2) Si on ne récupère pas de $_GET, $page = $_GET
        3) Et après ton switch sur la valeur de $page...

        Y'a un peu des trucs qui servent à rien, là XD Enfin bon, c'est quand même étrange qu'il ne t'embête pas pour l'accueil quand il n'y a pas de $_GET...

        Pour ton problème, enlève tes majuscules à Accueil et Produit. Il va dans les deux cas à default.
      3. ah c'etait les majuscule xD je me suis creuser la tete la dessus et c'etait juste ça en tout cas merci de ton aide :3
        ( et pour les truc qui serve a rien c'est simplement pour faire les test je remet les valeur et voila ^^)
      4. Contributeur
        Ok ok =)

        Il faut souvent faire attention à la casse. Parfois, le serveur (local ou online) traite indifféremment les min des majs, mais souvent ce n'est pas le cas =)
      5. ah ok merci pour tout en tout cas :p