Jump to content

mPDF error: Some data has already been output to browser, can't send PDF file.


Recommended Posts

Bonsoir à tous

Dans le compte client, historique des commandes (prestashop 1.6.1.5), il  n'est plus possible de récupérer le PDF des commandes, un message d'erreur apparait : mPDF error: Some data has already been output to browser, can't send PDF file.

En mettant des points d'arrêt, j'ai fini par trouver l'endroit où ce message est codé : ligne 15447 du fichier modules/m4pdf/libraries/mpdf/mpdf.php. Un test juste avant avec la fonction PHP headers_sent() provoque cette erreur. J'ai tenté de passer les paramètres (PHP manual) suivant : headers_sent($filename, $linenum), mais je ne suis pas plus avancé, car $filename retourne comme valeur le fichier index.php à la racine du site et comme ligne 2... ce qui correspond à pas grand chose au final, juste l'ouverture de la balise PHP 😕

Comment faire pour savoir quel fichier envoie l'en-tête trop tôt et provoque cette erreur ? 🙄

Merci d'avance pour vos réponses

Edited by devilyann (see edit history)
Link to comment
Share on other sites

Regardez si vous avez édité un des fichiers tpl utilisés pour la génération pdf.

Ce n'est pas 1 caractère mais 3

Editez ce fichier avec un vrai éditeur comme Notepad++ et choisissez l'encodage utf8 sans bom (par défaut) puis enregistrez-le

  • Like 1
Link to comment
Share on other sites

5 minutes ago, Eolia said:

Regardez si vous avez édité un des fichiers tpl utilisés pour la génération pdf.

Ce n'est pas 1 caractère mais 3

Editez ce fichier avec un vrai éditeur comme Notepad++ et choisissez l'encodage utf8 sans bom (par défaut) puis enregistrez-le

Ok merci je vais faire ça avec notepad++. Vu que l'erreur concerne mPDF, c'est forcément un fichier du module ou bien cela n'a rien à voir ?

Link to comment
Share on other sites

tout dépend s'il utilise les tpl du core ou pas.

Par contre j'activerai bien l'affichage des erreurs avant de toucher à quoi que ce soit car c'est peut-être une erreur Prestashop (en non php) qui fait crasher la génération. une adresse manquante ou n'importe quelle donnée.

Edited by Eolia (see edit history)
  • Like 1
Link to comment
Share on other sites

je pencherais pour index.php, tel que précisé dans le rapport de l'erreur

Quote

car $filename retourne comme valeur le fichier index.php à la racine du site et comme ligne 2... ce qui correspond à pas grand chose au final, juste l'ouverture de la balise PHP

La balise d'ouverture de PHP devrait être à la ligne 1, tout premier caractère... sinon, justement quelque chose est envoyé avant ..

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

5 minutes ago, doekia said:

je pencherais pour index.php, tel que précisé dans le rapport de l'erreur

La balise d'ouverture de PHP devrait être à la ligne 1, tout premier caractère... sinon, justement quelque chose est envoyé avant ..

Alors là bravo !

En effet il donnait bien le fichier concerné, c'est le saut de ligne du début qui provoquait cette erreur, je ne sais pas depuis quand ce saut est là, mais merci bcp, tu m'enlèves une épine du pied !

Link to comment
Share on other sites

12 minutes ago, Eolia said:

Vous n'auriez pas tenté d'installer un recaptcha dans ce fichier par hasard ?

En tout cas, bien vu @doekia tu as été plus perspicace que moi sur ce coup là ;) 

oui j'avoue c'est je pense depuis le recaptcha que ce soucis doit exister 😅

dommage que je n'ai pas eu le réflexe de virer cette ligne alors que j'avais rajouté les paramètres qu'il fallait à la fonction headers_sent() , mais je ne l'ai pas cru... 😕

Edited by yannick.81 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...