Probleme avec les include()

Résolu
Plilippe -  
 viketor -
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

31 réponses

Philippe
 
Vous pouvez meme les mettre en UTF-8 without BOM c est encore mieux :)

A +
2
viketor
 
Bonjour,

J'ai trouvé la solution à ce problème tout en gardant l'encodage en UTF-8. Vous pouvez voir ici : https://forum.hardware.fr/hfr/Programmation/PHP/elements-invisibles-include-sujet_128243_1.htm .

Pour résumer, il faut utiliser l'encodage UTF-8 (sans BOM) et non pas l'encodage UTF-8 (qui peut-être avec BOM). Les BOM étant des caractères à l'origine de ces espaces.

Cordialement.
1
Philippe
 
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
Utilisateur anonyme
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Philippe
 
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
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Regarde dans le code source généré (à l'aide de ton navigateur), tu devrais voir ce qui cloche.
0
Utilisateur anonyme
 
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
Philippe
 
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
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Tu as regardé dans le code source ?
0
Philippe
 
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
Philippe
 
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
Utilisateur anonyme
 
ç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
Philippe
 
Pourtant je ne suis pas le seul à avoir ce probleme. Regarde ici stp

https://openclassrooms.com/forum/sujet/probleme-affichage-page-include-avec-ie6-91451
0
Utilisateur anonyme
 
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
Philippe
 
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
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
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
le père
 
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
Utilisateur anonyme
 
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
Philippe
 
Non ça ne vient pas d un saut a la ligne puisque une ligne vide dans Notepad++ affichera rien.
0
Philippe
 
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