Bonjour à tous,
Ne trouvant pas de solutions en cherchant sur google et sur le forum je me permets de poster.
Je souhaite imprimer en pdf une facturation, le pdf doit contenir au entre 20 et 100 factures
Malheureusement j'ai une "ERROR 500" si j'imprime au dela de 10 factures dans le même pdf, avec 5 ou 6 factures tout va bien, je ne rencontre pas d'erreur.
L'erreur apparait au bout de quelques secondes bien en deça du max_execution_time (30 secondes)
Le HTML semble valide
Je suis hébergé chez 1and1, hébergement mutualisé
memory_limit = 128 Mo
Version PHP 5.2.14
Voici le code, qui est très proche des exemple originaux :
// récupération du contenu HTML
ob_start();
include(dirname(__FILE__).'/factures_edition2.php');
$content = ob_get_clean();
// conversion HTML => PDF
require_once(dirname(__FILE__).'/pdf/html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('P','A4', 'fr', false, 'ISO-8859-1');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('facture.pdf');
}
catch(HTML2PDF_exception $e) { echo $e; }
---------------------------------------------------------------------------------
Avez-vous une idée de mon erreur, ou bien ai-je oublié quelque chose ?
Merci de votre aide
Merci à toi Spipu
Spipu Le 29/12/2010 à 09:23 il faudrait regarder dans les logs, mais c'est à tous les coups un pb de ressource mémoire ou de limite de temps.
en même temps, générer autant de facture sur un mutualisé, c'est limite niveau perf. je conseillerais de faire les factures par 10, puis de les assembler avec un outil comme pdftk
Bonjour et merci de ta réponse rapide
Les logs ne disent rien chez 1and1 hélas sur l'erreur 500, j'ai appelé le support pour en savoir plus, rien à faire.
Je pense que c'est un pb de ressource puisque en local avec XAMPP pas de pb, mais je ne vois pas quel paramètre changer.
J'ai modifié le parm "memory_limit" à 32M dans php.ini et ça plante toujours.
Si quelqu'un a rencontré ce pb, HELP !!!
Donc je vais me diriger vers l'assemblage de pdf, ou voir si je veux facturer un serveur dédié !
Merci de ton aide
P
Spipu Le 29/12/2010 à 11:22 32Mo c'est trop faible
mais de mémoire, chez 1&1, on ne peut pas changer la valeur du memory_limit en mutualisé. t'as vérifié que ca avait bien un impact en affichant le PHPinfo ?
J'ai appellé 1and1, la limite est de 40M pour "memory_limit" chez eux. J'ai donc essayé et j'ai toujours l'ERROR 500. Oui c'est bien affiché dans phpinfos.
Mes factures ne sont pas si complexes, il y a un logo qui est assez léger de 8 ko
Je suppose qu'il n'a pas de pb avec cette ligne ?
$content = ob_get_clean();
La limite d'une variable php étant à priori limitée au memory_limit, mais je me trompe peut être...?
Mes tests en local avec XAMPP fonctionnent avec 50 factures, le memory_limit est à 128Mo
Je mets quand même 20 secondes pour 50 factures avec un I7 et 4Go de mémoire !
Tu ne trouves pas que 40 Mo pour faire 10 factures, y'a quelque chose qui ne va pas, mais où...
Merci à toi
Spipu Le 29/12/2010 à 22:32 ben compare à la mémoire que prend ton navigateur pour afficher ces 10 factures... c'est là tout le pb : html2pdf fait le même boulot, c'est en soit un afficheur de page HTML => ca prend beaucoup de ressources
Même problème sur OVH : quand ce n'est pas le navigateur qui se bloque pour me dire que le temps de chargement de la page est trop long, c'est le message error 500 qui apparaît.
J'ai réussi à écrire le pdf dans un dossier sur le serveur une fois pourtant mais ça ne marche plus.
Avez-vous trouvé une solution à votre problème ?
Spipu Le 19/02/2011 à 21:32 a parts décomposé le gros PDF en pleins de petits PDFs, ou d'avoir un serveur plus puissant, il n'y a pas de solutions, désolé !