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 +
    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
      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 ? )
        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() ...
          1. Regarde dans le code source généré (à l'aide de ton navigateur), tu devrais voir ce qui cloche.
            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 ^^
              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.... :/
                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....
                  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 :)
                    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 ,,, ^^
                      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 ?
                        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
                          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 ?
                            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é.
                              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 ? ^^
                                1. Non ça ne vient pas d un saut a la ligne puisque une ligne vide dans Notepad++ affichera rien.
                                  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;
                                    }
                                    • 1
                                    • 2