IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Espacement au dessus d'une baniere


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 23
    Points
    23
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    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.

  3. #3
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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 : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    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 ?>

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    merci de ta réponse rapide.

    Non pas de sortie, j'ai modifié le code de la sorte pour tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Bon, une piste.
    J'ai épuré le code en enlevant tout les espaces qui pourrais y avoir
    Mon fichier index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    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" :
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contrôler l'espace au dessus d'un tableau dans une liste
    Par kwazikwantik dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 18/07/2009, 18h45
  2. [Form 6i] Pas de curseur au dessus d'une zone de saisie
    Par pjcejbpojo dans le forum Oracle
    Réponses: 2
    Dernier message: 24/04/2006, 12h27
  3. [CSS] Superposition image au dessus d'une table
    Par laurent_h dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 31/03/2006, 17h45
  4. Réponses: 8
    Dernier message: 26/03/2006, 15h09
  5. Tracer un cadre de sélection au dessus d'une image.
    Par Crisanar dans le forum Windows
    Réponses: 3
    Dernier message: 10/10/2005, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo