Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir,
quelqu'un sait il pourquoi echo $this->doctype('XHTML1_TRANSITIONAL'); dans la première ligne du layout me génère une ligne blanche ?
Hors ligne
Hello,
Non pour la réponse, mais mon code est différent, j'ai dans le bootstrap :
$view = new Zend_View(); $view->addScriptPath('../application/layouts'); $view->doctype('XHTML1_TRANSITIONAL'); Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($view);
et dans le layout :
echo $this->doctype();
A+
Hors ligne
J'ai suivi tes conseils mais j'ai toujours des caractères en début de page que je ne parviens pas à neutraliser.
Tu m'avais parlé du BOM ici, en me disant qu'Eclipse n'en générait pas, mais ce n'est peut être pas la bonne piste
Les codes qui transitent et la ligne blanche sont clairement montrés sous Fiddler
Voici le source de la view :
<?php /** * Default home page view * * @author * @version */ $this->headTitle('Réservation hôtellière, index'); $this->placeholder('title')->set('Administration, Connexion utilisateur'); ?> Login, mot de passe, réservation <?php echo $this->form;
et du layout :
<?php /** * Administration Layout * * @author * @version */ echo $this->doctype(); echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php echo $this->headTitle(); echo $this->headScript(); echo $this->headStyle(); ?> </head> <body> <h1><?php echo $this->placeholder('title') ?></h1> <?php echo $this->layout()->content ?> <br /> <br /> </body> </html>
La sortie de la session sous Fiddler :
GET /resahotels/public/admin HTTP/1.1 User-Agent: Fiddler Host: localhost HTTP/1.1 200 OK Date: Thu, 30 Oct 2008 01:37:57 GMT Server: Apache/2.2.3 (Win32) mod_ssl/2.2.3 OpenSSL/0.9.8d X-Powered-By: Zend Core/2.5.2 PHP/5.2.6 Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/ Content-Type: text/html <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Réservation hôtellière, index</title> </head> <body> <h1>Administration, Connexion utilisateur</h1> Login, mot de passe, réservation <form enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form"> <dt><label for="username" class="required">Utilisateur :</label></dt> <dd> <input type="text" name="username" id="username" value="" /></dd> <dt><label for="password" class="required">Mot de passe :</label></dt> <dd> <input type="password" name="password" id="password" value="" /></dd> <dt> </dt><dd> <input type="submit" name="login" id="login" value="Connexion" /></dd></dl></form> <br /> <br /> </body> </html>
J'ai deux lignes blanches après le content-type, et je ne sais pas d'où elles viennent ni, bien sur, comment les virer...
M'agace... pfff
Fatigué
Dernière modification par Jean-Marc Rigade (30-10-2008 02:46:25)
Hors ligne
Hello,
C'est pas facile de répondre comme ça. Appliques-tu la règle suivante : "tout fichier ne contenant que du code PHP ne contient pas de balise fermante (?>)" ?
J'ai ceci sur mes pages :
HTTP/1.1 200 OK Date: Thu, 30 Oct 2008 09:08:02 GMT Server: Apache/2.2.9 (Win32) DAV/2 PHP/5.2.5 X-Powered-By: PHP/5.2.5 Content-Length: 3600 Content-Type: text/html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>
A+
Hors ligne
Je suis conscient que c'est difficile de répondre à ce genre de truc sans avoir toutes les billes.
J'ai bien supprimé les ?> fermants...
En fait quand j'affiche ma session en mode raw, j'ai un transfert-encoding de type chunked, et la longueur du packet qui suit apparaît dans la trace (3e6), mais n'est pas affichée dans la page web, heureusement.
J'ai remarque que tu n'avais pas cette indication de transfert encoding.
Mais je vais laisser tomber ça pour le moment.
Pour info, ma trace raw :
HTTP/1.1 200 OK Date: Thu, 30 Oct 2008 09:53:30 GMT Server: Apache/2.2.3 (Win32) mod_ssl/2.2.3 OpenSSL/0.9.8d X-Powered-By: Zend Core/2.5.2 PHP/5.2.6 Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/ Transfer-Encoding: chunked Content-Type: text/html 3e6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Réservation hôtellière, index</title> </head> <body> <h1>Administration, Connexion utilisateur</h1> Login, mot de passe, réservation <form enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form"> <dt><label for="username" class="required">Utilisateur :</label></dt> <dd> <input type="text" name="username" id="username" value="" /> <ul class="errors"><li>Le champ est requis</li></ul></dd> <dt><label for="password" class="required">Mot de passe :</label></dt> <dd> <input type="password" name="password" id="password" value="" /> <ul class="errors"><li>Le champ est requis</li></ul></dd> <dt> </dt><dd> <input type="submit" name="login" id="login" value="Connexion" /></dd></dl></form> <br /> <br /> </body> </html> 0
Merci pour tes conseils
Hors ligne