[Symfony2] Double Header

Bonjour,

J'ai utilisé la bibliothèque html2pdf sur mon site symfony2, pour pouvoir génrérer un PDF.
Cela fonctionne très bien sur mon WAMP mais pas sur OVH qui me renvoie un 502.

Voici l'erreur des logs.
[Fri Oct 14 09:28:32 2016] [error] [client ******] [host *****] FastCGI: comm with server "/www/app.php"
aborted: error parsing headers: duplicate header 'Content-type', referer

OVH me conseille de vérifier mon script mais je n'y comprends rien. Je ne vois pas pourquoi se problème persiste.

En attendant leur retour, savez-vous d'ou cela peut provenir ?

Hello,


Est-ce possible d'avoir un peu d'informations sur la manière dont vous utilisez la librairie ?
(Via un bundle externe ? Dans un service ? Directement dans un contrôleur ?)

L'erreur est assez générique et peut provenir de plusieurs choses, autant cerner le problème :slight_smile:

Si vous pouvez donner quelques infos sur votre config, des bouts de code…

Personnellement, j'utilise mPDF sur un mutualisé OVH et n'ai pas de problème particulier.

Dans un premier lieu j'utilisais la bibliothèque via un service que j'ai créer, puis suite à cette erreur j'ai essayer de l'utiliser directement dans le contrôleur. Dans les 2 cas l'erreur 502 persiste. Voici un exemple de mon utilisation dans le contrôler:

[…]
$html= $this->render('MonBundle:Facture:facturePDF.html.twig', array('facture'=> $facture));
$html2pdf= new \Html2Pdf_Html2Pdf('P','A4','fr');
$html2pdf->pdf->SetAuthor('author');
$html2pdf->pdf->SetTitle('Facture '.$facture->getReference());
$html2pdf->pdf->SetSubject('Facture');
$html2pdf->pdf->SetKeywords('facture');
$html2pdf->pdf->SetDisplayMode('real');
$html2pdf->writeHTML($html);
$html2pdf->Output('Facture.pdf');

$response = new Response();
$response->headers->set('content-type', 'application/pdf');
return $response;

J'ai pu relever un soucis au niveau de ma version de PHP, sur mon serveur elle est de 5.4 alors qu'OVH m'indique 5.6, ça peut être problèmatique, du coup j'attends le retour d'OVH la dessus mais je voulais voir si ça pouvais venir d'ailleurs.

Merci encore ! :slight_smile:

edit: Je vais me pencher sur mPDF au cas ou ! :slight_smile:

Ce qui me titille, c'est que d'après ta ligne de log, ça n'a pas l'air d'être spécialement lié à HTML2PDF, mais plus à un soucis côté Symfony en soit…
Qui peut être lié à l'environnement (version PHP…) !

Perso je tourne en PHP7 sans soucis.

Est-ce que la stacktrace de tes logs t'indique plus de précisions sur l'erreur ?

Je vais voir pour ma version de PHP alors :slight_smile:

Je n'ai pas plus de précision sur l'erreur, c'est la ligne entière, j'ai cela avant l'erreur:

FastCGI: An error happend on Fastcgi processing, fallback to CGI, referer: /lien_de_ma_facture

Merci pour votre aide !

Bonjour Philippe,

Juste comme ca, as tu essayé d'enlever $response->headers->set('content-type', 'application/pdf'); ?
Peut être que html2pdf le configure déjà !

Cordialement,
Vincent

Bonjour Vincent !

Effectivement j'avais penser à tester. Mais ça n'arrange rien à mon problème :confused:
Je pense que ça viens de ma version php, qui sur mon serveur est à 5.3 alors qu'elle devrait être a 5.6. J'attends le retour du support la dessus.
Je ne pense pas que le problème vienne de mon script.
Merci à toi,

Que contient votre fichier .ovhconfig ?
https://docs.ovh.com/fr/fr/web/hosting/configurer-le-php-sur-son-hebergement-web-mutu-2014/

Cordialement,
Vincent

Bonjour,

Voilà ce que contient mon fichier .ovhconfig

app.engine=php
app.engine.version=5.6
http.firewall=none
environment=production

J'avais déjà pu vérifier son contenu avec le support mais comme je vous dis, quand je fais un php -v je n'ai pas la version 5.6.

Attention, là vous parlez de PHP en ligne de commande. Le fichier.ovhconfig ne concerne par défaut que les pages exécutées par le serveur web. Pour connaitre votre version, il faut faire un phpinfo().

Si vous voulez avoir la version du .ovhconfig en ligne de commande, je vous recommande d'utiliser ce .bashrc https://github.com/ovh/webhosting-ssh-bashrc

Cordialement,
Vincent

Dans ce cas si le problème ne viens pas de la version de php d'ou peut provenir cette erreur ? :confused:
Ce n'est pas mon script car il fonctionne très bien sur mon serveur local avec la même version PHP :confused:

ça va faire 2 semaine que je suis sur cette même erreur, sachant que cette bibliothèque génère des factures sur mon site, c'est plutôt probèmatique :confused:

Bonjour,

Bon j'ai du nouveau. Après avoir perdu quelques cheveux, j'ai fait un petit test avec ça:

$response->headers->set('content_type', 'application/pdf');

Mon PDF est généré. Cependant la fonctionnalité n'est pas pour autant Opérationnelle:

- Quand je visualise la requête je me retrouve avec 2 header, qui prouvent donc qu'il y en a un qui est bien envoyé en plus du miens:

Content-Type:application/pdf
Content_type:application/pdf

- le style de ma twig n'est pas chargé.

Je ne vois pas du tout ou ce Content-type peut être appelé ou indiqué puisque nulle par dans mon code pour la génération de cette page un autre header est indiqué. En plus de ça si je supprime la ligne de mon header la page n'est pas générée, donc d'ou sort ce header ?


Une idée ?

Personne n'a d'idée ?