Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-10-2010 11:21:43

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

[Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Bonjour,

Je travail actuellement sur la refonte du site internet de mon entreprise et j'ai un problème, qui, je pense, vient du layout.

J'explique.

J'utilise le même layout sur toutes les pages. Or, sur certaines pages, une ligne blanche s'inclut tout en haut de la page décalant tout le site.

http://reseaudesassociations.fr/fr/services <- Ici tout va bien
http://reseaudesassociations.fr/fr/outils <- Ici tout est descendu d'une ligne

Pourtant, j'ai tout enlevé de la page il ne reste que les balises
<html>
     <head>
     $this->headLink()->appendStylesheet('../default/styles/main.css', 'screen', true);
     echo $this->headLink();
     </head>
     <body>
          <div>Blabla</div>
     </body>
</html>

Ce que j'ai remarqué avec firebug, c'est que dans les pages où une ligne apparait, le lien du css se retrouve dans le body au lieu de rester dans le head. Alors que dans les autres pages, tout est bien à sa place.

Les contrôleurs sont identique, vide,  avec bien la première lettre en maj.

Je ne sais vraiment pas ce qui se passe. Si quelqu'un pouvait éclairer ma lanterne.

Dernière modification par Nadawn (06-10-2010 13:57:24)

Hors ligne

 

#2 05-10-2010 11:43:09

My_Sic
Membre
Date d'inscription: 06-09-2010
Messages: 49
Site web

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Lorsqu'on regarde le code source, il n'y a pas de Head dans le body.
Mais un caractère espace avant la balise html.

Attention avec Firebug car ce n'est pas le code source que tu vois, mais le DOM déjà corrigé et modifié par Firefox.

Tu a du cache page ? Si oui ça vient peut-être de ton debug_header.


http://www.centurion-project.org: Full stack Framework based on Zend Framework; led by:
http://www.octaveoctave.com: an enthusiastic web agency full of passionate.
http://www.cache-pistache.com: French blog on ZF and SF perfomance

Hors ligne

 

#3 05-10-2010 11:54:32

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Il n'y a pas de cache sur ces pages là.

Je ne vois pas d'espace avant la balise html quand je regarde la source de mon côté.
Si c'etait un problème de cache, ca le ferais sur toutes les pages, puisque c'est le même layout, non ?

Et je sais pour firebug, mais ca reste une aide précieuse pour déceler certains problème smile

Hors ligne

 

#4 05-10-2010 12:30:18

My_Sic
Membre
Date d'inscription: 06-09-2010
Messages: 49
Site web

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Il y a clairement un espace dans http://reseaudesassociations.fr/fr/outils (visible avec Google Chrome, Fiddler, ...)

Ouvre donc tous tes fichiers php à la recherche d'un espace avant la balise <?php ou après la balise ?> (qui d'ailleurs ne doit pas être utilisé si ça n'est pas nécessaire pour éviter ce genre de désagrément).

Tu peux tricher aussi : insère la fonction setcookie('tata', 'yoyo'); à la fin de ton fichier index.php.
Php va t'afficher une erreur du type : 'Output already started in monfichier.php at ligne 1'.
Tu n'auras plus qu'à te rendre dans le fichier en question et supprimer le caractère.
N'oublie pas d'enlever la fonction setcookie() après avoir corrigé le problème.


http://www.centurion-project.org: Full stack Framework based on Zend Framework; led by:
http://www.octaveoctave.com: an enthusiastic web agency full of passionate.
http://www.cache-pistache.com: French blog on ZF and SF perfomance

Hors ligne

 

#5 05-10-2010 13:13:54

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Alors,
J'ai bien mis setcookie('tata', 'yoyo'); à la fin de mon fichier public_html/index.php
Aucune erreur à l'horizon malheureusement.

Mais effectivement, sous chrome on aperçois bien l'espace avant le <html>

Mon OutilsController :

<?
require_once 'Zend/Controller/Action.php';

class OutilsController extends RdControllerClass
{
    public function init(){
        parent::init();
        $this->view->title = "Bug Blabla";
    }
   
    public function indexAction()
    {
       
    }
}

Dernière modification par Nadawn (05-10-2010 13:24:05)

Hors ligne

 

#6 05-10-2010 14:23:24

My_Sic
Membre
Date d'inscription: 06-09-2010
Messages: 49
Site web

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Oui effectivement tu ne dois pas avoir d'erreur car Zend utilise l'output buffering.
Essais peut-être avec ce code :

Code:

while(ob_get_flush());
restore_error_handler();
setcookie('tata', 'yoyo');

ça va peut-être t'aider, mais pas sure que tu vois la ligne exacte.

Pour ton OutilsController, vérifie que t'a pas d'espace devant le <?php.
De même pour TOUS les fichiers utilisés (ça peut venir d'un fichier Table, Form, ...).

Si tu es sous Zend Studio (Peut-être que ça marche avec Eclipse PDT aussi) :
- Appui sur CTR+H
- Va dans l'onglet File Search
- Active "Regular Expression"
- Et effectue une recherche sur (sans les quotes) : "^ <?php"

Fait de même pour avec l'expression : "\?>\s*<\?php"

Cela pourrait peut-être t'aider à identifier ton fichier qui affiche ce caractère blanc.


http://www.centurion-project.org: Full stack Framework based on Zend Framework; led by:
http://www.octaveoctave.com: an enthusiastic web agency full of passionate.
http://www.cache-pistache.com: French blog on ZF and SF perfomance

Hors ligne

 

#7 05-10-2010 14:34:28

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

J'ai l'erreur, mais qui ne donne pas le bon fichier.
"Warning: Cannot modify header information - headers already sent by (output started at /public_html/index.php:2) in /public_html/index.php on line 4"

Cette ligne correspond à setcookie('tata', 'yoyo');

Hors ligne

 

#8 05-10-2010 14:38:37

My_Sic
Membre
Date d'inscription: 06-09-2010
Messages: 49
Site web

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Fouille alors manuellement tous tes fichiers en les ouvrants ou en cherchant avec Zend Studio et les Regex que je t'ai indiqué.


http://www.centurion-project.org: Full stack Framework based on Zend Framework; led by:
http://www.octaveoctave.com: an enthusiastic web agency full of passionate.
http://www.cache-pistache.com: French blog on ZF and SF perfomance

Hors ligne

 

#9 05-10-2010 14:42:38

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

Je le fais actuellement, ca cherche dans les quelques 21 666 fichiers du projet wink

Merci en tout cas.

Hors ligne

 

#10 05-10-2010 14:45:40

My_Sic
Membre
Date d'inscription: 06-09-2010
Messages: 49
Site web

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

J'ai oublié de préciser de filtrer les fichiers : *.php, *.phtml


http://www.centurion-project.org: Full stack Framework based on Zend Framework; led by:
http://www.octaveoctave.com: an enthusiastic web agency full of passionate.
http://www.cache-pistache.com: French blog on ZF and SF perfomance

Hors ligne

 

#11 05-10-2010 15:25:55

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

"^ <?php" <- 0 matches
"\?>\s*<\?php" <- 68 matches. Tous sur des anciens fichiers non utilisé.

L'erreur ne doit donc pas venir de là.

Ca ne pourrait pas venir d'une erreur d'un .js ? Bien que j'utilise aucun .js dans le code à cet endroit.

Edit : Si je fait la même recherche avec <? au lieu de <?php, vu que la plupart de mes balises d'ouverture php sont <? ca me donne :
"^ <?php" <- 286 521 matches, même à des endroit où il n'y a pas la balises <?
"\?>\s*<\?php" <- 213 matches, sur des fichiers qui ne pose pas problèmes ou qui ne servent pas dans le cas présent

Dernière modification par Nadawn (05-10-2010 15:33:06)

Hors ligne

 

#12 08-10-2010 03:34:22

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

En recherche "regexp", "<?" veut dire "<" suivit d'un autre caractère. Essaye avec "<\?" si le résultat est mieux.

Hors ligne

 

#13 11-10-2010 10:32:55

Nadawn
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 7

Re: [Zend_layout][1.10.1] Partie du head qui se retrouve dans le body

J'ai réussi enlever le problème sur une des deux pages qui avaient le bug en supprimant simplement le Controller et en le remplaçant par un autre ( en remettant les bonnes infos ).

Mais ca n'a pas marché pour l'autre page.

"<\?" <= 0 matches

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages