Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/08/2011, 16h02   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Par défaut Espacement au dessus d'une baniere

Bonjour a tous,

j'ai un probleme avec mon site, j'ai un espacement qui apparait au dessus de ma baniere lorsque je fais un include sur un objet.

Je n'ai pas de CSS dans mon exemple pour facilité la lecture.

Voici mon code qui fonctionne :
Code :
1
2
3
4
 
<body style='margin : 0px; padding :0px;'>
<div style='height : 81px; width : 81px; background-color : blue;'></div>
</body>
Et des que je fais un include de ma classe objet :
Code :
1
2
3
4
5
6
7
 
<body style='margin : 0px; padding :0px;'>
<?php
include('../ressources/classes/CLS_objet.php');
?>
<div style='height : 81px; width : 81px; background-color : blue;'></div>
</body>
J'ai un espacement en haut.

mon fichier de ma classe objet :
Code :
1
2
3
4
5
6
7
8
 
<?php
abstract class objet {
 
	protected $title; // titre de l'onglet d'affichage
	protected $classe; // titre de la classe par défaut
}
?>
Par contre ce code ci marche :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<body style='margin : 0px; padding :0px;'>
<?php
abstract class objet {
 
	protected $title; // titre de l'onglet d'affichage
	protected $classe; // titre de la classe par défaut
}
?>
<div style='height : 81px; width : 81px; background-color : blue;'></div>
</body>

.... je ne vais pas définir tous mes objet dans mon entete ... les fichiers includes sont fait pour cela ... j'suis perdu, help me please !

Et merci
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h20   #2
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Bonjour,

normalement le include devrait être tout au début du fichier et non entre le code HTML. Regardes bien qu'il n y a aucune sortie dans ton fichier PHP.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h31   #3
Membre Expert
 
Avatar de Bebel
 
Homme David B.
Développeur informatique
Inscription : avril 2003
Messages : 742
Détails du profil
Informations personnelles :
Nom : Homme David B.
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2003
Messages : 742
Points : 1 085
Points : 1 085
Citation:
Envoyé par Thes32 Voir le message
Bonjour,

normalement le include devrait être tout au début du fichier et non entre le code HTML. Regardes bien qu'il n y a aucune sortie dans ton fichier PHP.
Ou de lignes blanches avant le <? ou après le ?>
__________________
Tout énigme a une solution ! Tout est question de discipline !
Bebel est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h32   #4
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
merci de ta réponse rapide.

Non pas de sortie, j'ai modifié le code de la sorte pour tester :
Code :
1
2
3
4
5
6
7
<?php
// chargement des ressources
include( '../ressources/classes/CLS_objet.php' );
?>
<body style='margin : 0px; padding :0px;'>
<div style='height : 81px; width : 81px; background-color : blue;'></div>
</body>
le include est avant et pourtant j'ai toujours le même probleme
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h02   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Bon, une piste.
J'ai épuré le code en enlevant tout les espaces qui pourrais y avoir
Mon fichier index.php :
Code :
1
2
3
4
5
6
7
8
<head></head>
<?php
// chargement des ressources
include( 'CLS_objet.php' );
?>
<body style='margin : 0px; padding :0px;'>
<div style='height : 81px; width : 81px; background-color : blue;'></div>
</body>
Mon fichier CLS_objet.php :
Code :
1
2
3
4
5
6
<?php
abstract class objet {
	protected $title; // titre de l'onglet d'affichage
	protected $classe; // titre de la classe par defaut
}
?>
Toujours le même espacement.
Par contre mes fichiers sont enregistrer en UTF-8
Lorsque je met le fichier CLS_objet.php en ANSI je n'ai plus l'espacement
Le problème vient quand même que ma base de données (qui n'est pas encore connecté) est en UTF8 et c'est OBLIGATOIRE.
Ma classe objet contient des méthodes (que j'ai enlevé pour le test) qui utilise des requêtes en UTF8 ...
Ce n'est quand même pas normal que le simple changement d'encodage fasse ce genre de chose
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h13   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Bon j'ai compris l'erreur.
cela vient bien de l'encodage, il faut (et cela je ne le savais pas) encoder les fichiers en "utf8 - sans BOM" :
Citation:
Le BOM (Byte Order Mark) est un caractère espace insécable de largeur nulle. D'où quand tu affiches une page qui contient le BOM (un caractère invisible qui vient en toute première position du document donc) tu ne pourras pas utiliser de fonctions modifiant les entêtes sous peine d'avoir cette erreur (comme l'a dit elscorto) puisque même si on ne le voit pas, le BOM lui est déjà affiché.

D'où l'intérêt, si on encode son document en UTF-8, de toujours le faire sans BOM, histoire de ne jamais avoir ce genre de surprise.
Donc j'ai modifier mes fichiers en utf8 - sans BOM, la base marche car c'est de l'utf8 et je n'ai plus mon espace de m.... !

merci a tous
henoch est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h16.


 
 
 
 
Partenaires

Hébergement Web