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 précise que quan je n'utilise pas le include() et que je met directement le code de connexion dans la page, ça ne provoque pas cet espace vide tout en haut
      0
      1. Le fichier que tu inclu est il dans le même répertoire que la page avec "include()" ?

        Es que ton fichier que tu inclu n'est pas vide ? ( oublie de sauvegarder ? )
        0
        1. non c est bien dans le meme repertoire car ma conexion a la bdd se fait bien

          du coup, pour compenser cet espace vide, je dois mettre pour compenser cet espace vide:

          #page {
          margin-top:-22px;
          }

          #page contient l ensemble du site

          grace à ça mon site remonte d une ligne comme il faut

          mais je compren pas pourkoi cet espace vide apparait quan on utilise le include() ...
          0
          1. Regarde dans le code source généré (à l'aide de ton navigateur), tu devrais voir ce qui cloche.
            0
            1. Peut être un <br/> dans le fichier include ? ou <p> ?

              Ou une erreur qui s'affiche de la même couleur que le fond ?

              Enfin sa peut venir de plein de chose toute bête ^^
              0
              1. j en sais rien mais façon j ai le meme espace vide quand jtuilise header()

                alors que j ai pas fait d erreur.... :/
                0
                1. Tu as regardé dans le code source ?
                  0
                  1. oui j ai regardé mais je vois pas la solution

                    J'ai un fichier menu.inc.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>

                    Ce fichier je l'inclus sur toutes mes pages comme ça :

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

                    et je precise que mon fichier css est :

                    #navigation {
                    width: 645px ;
                    height:33px;
                    list-style: none ;
                    padding: 0px ;
                    margin: 0px ;
                    }
                    #corps{
                    margin:0;
                    padding:0;
                    }

                    Et malgré ça, j ai toujours cette espace vide blanc de 12px entre la div #corps et le haut de mon menu !

                    Alors que si je met directement:

                    <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>

                    Et bien le menu "colle" bien a la #div corps !!

                    Donc ça vient du include() cet espace blanc de 12px mais je comprend pas pourkoi....
                    0
                    1. En fait j ai l impression que des qu on utilise les include()

                      alors il faut préciser dans l'élément qu on inclut

                      margin-top:-16px;

                      pour faire remonter l élément a sa bonne place dans le div parent...

                      ça doit etre une propriété par défaut de include() je vois pas d'autre explication

                      Si qqun a une autre explication, ça sera la bienvenue :)
                      0
                      1. ça doit etre une propriété par défaut de include() je vois pas d'autre explication

                        J'ai jamais u ce problème avec les include() donc sa viens surement pas de la ,,, ^^
                        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. 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. 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. 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. 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. Non ça ne vient pas d un saut a la ligne puisque une ligne vide dans Notepad++ affichera rien.
                                    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. 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
                                        • 2