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

Mise en page CSS Discussion :

Code php qui génère du décalage


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Par défaut Code php qui génère du décalage
    Bonjour à tous,

    J'ai créé une petite page qui, pour le moment ne fait rien. Enfin, si, suivant certaines conditions, elle effectue des redirections. Et, sinon, elle affiche(ra) un menu et une page.

    Le code contenant les redirections se trouve entre le <!doctype html> et le <html>.

    Le problème est que ce code "écrit" 4 caractères 'invisibles' entre le début de la seconde ligne et le <html>. De ce fait, même avec le css suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    body
    {
    	margin: 0;
    	padding: 0;
    }
     
    #global
    {
    	margin: 0 auto;
    	padding: 0;
    	width: 950px;
    }
    la page commence avec un décalage de 26 pixels vers le bas avec Firefox, 20 pixels avec chrome et 18 avec internet explorer.

    En recopiant le code html sans le php, j'arrive à ne pas avoir ce décalage.

    Y-a-t-il un moyen (sans faire de redirection vers la page sans le php) de faire cesser ce décalage vers le bas qui semble, en plus, dépendre de façon importante du navigateur ?

  2. #2
    Membre extrêmement actif
    Avatar de Muchos
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 704
    Billets dans le blog
    6
    Par défaut
    C'est normal qu'il y ait un décalage, puisque les caractères "invisibles" sont intégrés dans le document compilé. Ex:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!doctype html>
    	Texte invisible (on fait comme si)
    	<!-- fin texte invisible -->
    <html dir="ltr" lang="fr-FR">
    <head>
    	<meta charset="UTF-8" />
    	<title>Décalage? Normal!</title>
    	<style type="text/css">
    p { border: thin solid black; }
            </style>
    </head>
    <body>
    	<p>Début document...</p>
    </body>
    </html>

    Solution: virer ces carcatères intrusifs, non?

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Je verrais plus une marque BOM. Donc il faudrait enregistrer le fichier en UTF-8 sans BOM (marque d'ordre d'octet).

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Par défaut
    Tous les fichiers sont déjà encodés au format UTF-8 sans BOM.

    Voici mon code pour le pHp :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <!doctype html>
    <?php
              Long code php qui fait des requêtes SQL et suivant les résultats de ces requêtes, génère une redirection...
     
    ?>
    <html>
    <head>
    		<meta charset="utf-8"/>
    		<link rel="stylesheet" type="text/css" href="style/index.css"/>
    		<title>Edition du site</title>
    	</head>
    	<body>
    		<div id="global">
    			<div class="entete">
    				<div class="blocmenu">
    					<ul id="menu">
    						<li><a href="index.php?fonction=profil">Profil</a></li>
    						<?php
                                                            if($_SESSION['niveau']<2)
                                                            {
                                                                    echo '<li><a href="index.php?fonction=gestion">Gestion</a></li>';
                                                            }
                                                    ?>
     
    						<li><a href="index.php?fonction=publicites">Publicités</a></li>
    						<li><a href="index.php?fonction=actualites">Actualités</a></li>
    						<li><a href="index.php?fonction=qcm">QCM</a></li>
    						<li><a href="index.php?fonction=pages">Pages</a></li>
    						<li><a href="index.php?fonction=gardes">Gardes</a></li>
    					</ul>
    				</div>
    			</div>
    		</div>
    	</body>
    </html>

    Lorsque je consulte le "code source de la page" avec un navigateur, je vois bien tout cela mais en fait le <html> ne se trouve pas en ligne 2, colonne 0 mais en ligne 2, colonne 4 alors qu'il n'y a apparemment aucun caractère avant...

    Edit : ces caractères invisibles semblent générés par la ligne suivante de mon code pHp :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include('../utils/connexion/bdd-connect.php');
    qui contient les variables nécessaires à la connexion à la base SQL : login, mot de passe, url...

    Edit2 : Problème résolu... L'include en question appelait un autre fichier qui provenait d'un autre projet qui n''était pas encodé en UTF8 sans BOM !

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

Discussions similaires

  1. Code PHP qui tourne sans fin
    Par bruce-willis dans le forum Langage
    Réponses: 8
    Dernier message: 25/02/2009, 07h54
  2. Réponses: 2
    Dernier message: 25/06/2008, 13h56
  3. Code php qui ne fonctionne pas
    Par bachir008 dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2007, 10h17
  4. [EasyPHP] code php qui s'affiche
    Par moonia dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 11/04/2006, 11h01

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