Probleme avec les include()

Résolu
Bonjour,

j ai mis un include() avec dedans ma connexion a la base de données

probleme: quand je recharge la page apres avoir mis l include > ça me met un espace blanc tout en haut de mon site.

Pourquoi?

Et que faut'il faire?

merci
Configuration: Windows Vista / Internet Explorer 7.0

31 réponses

Résumé de la discussion

Un espace blanc en haut survient lors du rechargement après l'inclusion d'un fichier, lié à l'encodage ou à des caractères invisibles issus du fichier inclus. Des réponses évoquent principalement l'encodage UTF-8 avec BOM comme cause, et recommandent d'utiliser UTF-8 sans BOM pour éviter ces espaces, en testant aussi l'encodage des fichiers inclus. D'autres éléments suggèrent des causes matérielles comme des marges CSS par défaut (margin-top de 16px) ou la présence de balises HTML parasites dans le fichier inclus, nécessitant ajustements CSS ou nettoyage du code. En dernier, une vérification croisée consiste à tester le contenu sans include et à comparer l'effet sur le HTML généré, puis à appliquer un CSS reset pour éliminer les marges par défaut.

Bobot (l’IA à votre service)
  1. Vous pouvez meme les mettre en UTF-8 without BOM c est encore mieux :)

    A +
    2
    1. je peux pas, je suis pas inscrit.

      Met le en résolu pour moi ;)
      0
      1. Je peux pas non plus. Y'a que celui qui créé le topic qui peux le changer.
        0
      2. @artheziusIl y a aussi les contributeurs, les modérateurs et les webmasters qui peuvent :)
        0
    2. Si ton problème est résolu, change le statu en haut de la page.
      0
      1. c était pas ça non plus.

        J ai trouvé !!!

        ça venait de l'encodage de la page menu.php

        Il fallait l'encoder en ANSI au lieu de la mettre en UTF-8 sinon ça fait des marges par défaut qui viennent de nul part...
        0
        1. Ça m'étonnerait énormément que include ait un bug...
          As-tu corrigé les erreurs de " et de > qu'il y a dans
          <li><a href="#">lien</a></li>
          <li><a href="#"">lien</a></li> <-- attention " en trop
          <li><a href="#"lien</a></li> <-- attention manque > entre " et lien
          <li><a href="#"lien</a></li> <-- attention manque > entre " et lien
          <li><a href="#">lien</a></li>

          As-tu comparé les codes HTML obtenus avec include et en mettant les commandes directement dans ton php ?
          0
          1. oui exact je l ai viré mais ça change rien de toute façon.

            Ya toujours ce margin-top de 16px par defaut.

            Alors que quand je met le code direct dans le fichier (sans passer par l include) et bien je n ai pas ce probleme

            La fonction include doit avoir un bug
            0
            1. oui j ai intégré ceci

              <div id="corps">
              <?php
              include("menu.php");
              ?>

              menu.php

              <ul id="navigation">
              <li><a href="#">lien</a></li>
              <li><a href="#"">lien</a></li>
              <li><a href="#"lien</a></li>
              <li><a href="#"lien</a></li>
              <li><a href="#">lien</a></li>
              </ul>

              menu.css

              #navigation {
              width: 645px ;
              height:33px;
              list-style: none ;
              padding: 0px ;
              margin: 0px ;
              }
              #navigation ul{
              margin: 0px ;
              padding: 0px ;
              }
              #navigation li {
              display:inline;
              float:left;
              width:129px;
              height:34px;
              background: #4169e1 ;
              color: #fff ;
              margin-bottom: 1px ;
              text-align:center;
              font-family:Arial;
              text-decoration:none ;
              font-size:110%;
              font-weight:bold;
              }
              #navigation li a {
              float:left;
              width:129px;
              height:34px;
              display: block ;
              background:blue;
              color: #fff ;
              line-height:33px;
              text-align: center ;
              font-weight:bold;
              }
              #navigation li a:hover, #navigation li a:focus, #navigation li a:active{
              background:navy;
              text-decoration: underline ;
              color:#FFF;
              }
              0
              1. Et le CSS du div corps ?
                Tu as quoi sinon avant cette balise div ?

                Cet extrait est incorrecte:
                #navigation ul{
                margin: 0px ;
                padding: 0px ;
                } 

                Ce code fait référence à un balise comportant l'id navigation et qui contiendrai une balise ul.
                Toi ce que tu as c'est au contraire une balise ul portant l'id navigation.
                Autrement dit, ce qui serai plus correcte:
                ul#navigation{
                margin: 0px ;
                padding: 0px ;
                } 

                Mais ce code est déjà présent dans ton :
                #navigation{ ... }

                Tu peux donc enlevé ce morceau de code CSS.
                0
            2. Peux tu mettre ici le code qui est dans le fichier inclue ?
              0
              1. ça vient forcément de la fonction include() car moi j ai pas fait d erreur

                donc cette fonction est naze ou alors mon wamp est mal configurée... probleme de php.ini ou extension j en sais rien du tout...
                0
                1. ça resout rien je viens de tester
                  0
                  1. Fait un test, met un margin:0px; sur la balise ul dans ton CSS.
                    0
                    1. pardon

                      menu.php

                      <ul id="navigation">
                      <li><a href="#">lien</a></li>
                      <li><a href="#"">lien</a></li>
                      <li><a href="#"lien</a></li>
                      <li><a href="#"lien</a></li>
                      <li><a href="#">lien</a></li>
                      </ul>

                      ça me met une marge en haut de 16px ... je comprend pas.

                      Aidez moi svp

                      J ai passé l apres midi dessus...

                      Merci
                      0
                      1. J'esaie juste d inclure un menu avec include() dans une div

                        Mais ça me met une marge par defaut de 16px en haut

                        <div id="corps">
                        <?php
                        include("menu.php");
                        ?>

                        menu.php

                        <div id="corps">
                        <ul id="navigation">
                        <li><a href="#">lien</a></li>
                        <li><a href="#"">lien</a></li>
                        <li><a href="#"lien</a></li>
                        <li><a href="#"lien</a></li>
                        <li><a href="#">lien</a></li>
                        </ul>

                        css

                        #navigation {
                        width: 645px ;
                        height:33px;
                        list-style: none ;
                        padding: 0px ;
                        margin: 0px ;
                        }
                        #navigation li {
                        display:inline;
                        float:left;
                        width:129px;
                        height:34px;
                        background: #4169e1 ;
                        color: #fff ;
                        margin-bottom: 1px ;
                        text-align:center;
                        font-family:Arial;
                        text-decoration:none ;
                        font-size:110%;
                        font-weight:bold;
                        }
                        #navigation li a {
                        float:left;
                        width:129px;
                        height:34px;
                        display: block ;
                        background:blue;
                        color: #fff ;
                        line-height:33px;
                        text-align: center ;
                        font-weight:bold;
                        }
                        #navigation li a:hover, #navigation li a:focus, #navigation li a:active{
                        background:navy;
                        text-decoration: underline ;
                        color:#FFF;
                        }
                        0
                        1. Non ça ne vient pas d un saut a la ligne puisque une ligne vide dans Notepad++ affichera rien.
                          0
                          1. le père

                            Le code
                            test 
                            
                            
                            test
                            

                            Affichera test test que sa soit en html ou en php donc sa ne peut pas venir d'un saut a la ligne ,,,

                            Et 16 px pour un saut a la ligne sa fait un peut beaucoup non ? ^^
                            0
                            1. Bonjour

                              Tu as probablement une ligne vide au début ou à la fin du fichier inclus, ce qui revient ajoute une ligne vide dans le HTML généré.
                              0
                              1. J'ai jamais eu de souci non plus avec les include() et pourtant j'en utilise pas mal...

                                Aurai tu un lien vers ton site à nous proposer ?
                                0
                                1. j ai pas testé pour IE6 car moi ça marche deja pas dans mozilla 3.5 et pareil pour IE7 et IE8 !!

                                  margin-top de 16 px par défaut direct dans les navigateurs récents

                                  c est a ni rien comprendre
                                  0
                                  1. zizanie
                                    Le mieux est de faire une feuille de style spéciale pour IE6. :D 


                                    A mon avis il a raison ,,, ^^ tu a essayé avec firefox ou un autre navigateur que ie ?
                                    0
                                    • 1
                                    • 2