Portal > Foren > PHP > PEAR, PECL und Frameworks > FPDF / eMail mit PDF verschicken
Antwort
 
Themen-Optionen
Alt 15.08.2007, 20:07 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 15.08.2007
Beiträge: 5
Standard FPDF / eMail mit PDF verschicken

Hallo,
ich glaube, dass ich ein Standardproblem habe.
Ich habe ein kleines PHP-Script mit Flash als Frontend.
Das PHP-Script soll mir eine Rechnung aus einer Datenbank erstellen, was es auch tut. Ebenso habe ich mit FPDF es nach einem Tag geschafft, mir dynamisch ein PDF zu generieren. Aber genau da habe ich auch schon die Frage.

Wenn ich nun mit
PHP-Code:
  $pdf->Output($BestNr.".pdf",'F'); 
das PDF speichern möchte, und ich dann mit dem phpmailer das PDF attache und im Anhang verschicken will, kommt GAR nichts bei mir an oder nur manchmal.
Wie kann ich PHP sagen, dass es gefälligst solange warten soll, bis FPDF mit dem Output fertig ist und erst dann das File attached, wenn es auch wirklich vorhanden ist ?

Ich habe mich wuschig gegoggelt. Vielen Dank im voraus.
Schöne Grüße aus Bottrop.
Error123 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 07:22 Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 279
Standard

Was hat es den in deinem Link mit diesem $boundary String auf sich?
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 08:54 Nach oben    #4
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Nichts gutes... Das $boundary hat nichts mit dem FPDF zu tun, sondern mit dem Mail-Versand als solches. Da gehts nur um den "Dateinamen" deines Anhangs, den du ja nicht hast. Eine vernünftige Mail-Klasse, die mit dynamischen Anhängen zurecht kommt, nimmt dir diese Arbeit ab.
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 09:40 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 15.08.2007
Beiträge: 5
Standard

vielen Dank soweit.
Hab aber das Problem auf eine andere Weise mittlerweile umgangen.
PHP-Code:
    $mail->Body $body;
    
$timeout =8;$ready false;
    
$start date ('s'); $ende $start+$timeout;
    while (! 
file_exists ($BestNr.".pdf")) {
    if (
date ('s') >= $ende) {
       echo 
"&ErrInfo=Time Out erreicht&";    
    exit;
          }
    }
    
$mail->AddAttachment($BestNr.".pdf"); 
Error123 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 10:26 Nach oben    #6
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Dir ist aber bewusst, was potentielle Endlosschleifen bedeuten? Wenn du keinen eigenen Server hast wird dir das dein Provider irgendwann wegen zu großer Serverlast um die Ohren hauen.
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 10:51 Nach oben    #7
Neuer Benutzer
 
Registriert seit: 15.08.2007
Beiträge: 5
Standard

Das ist ja keine Endlosschleife. Die terminiert ja. Entweder nach einer bestimmten Zeit.
Vielleicht kann man ja den Time Out auf 3 Sekunden heruntersetzen. Oder aber halt wenn in der Regel das PDF generiert ist.
Error123 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 11:20 Nach oben    #8
Erfahrener Benutzer
 
Benutzerbild von Bleistift
 
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 298
Standard

Aber ein Sleep solltest du dennoch einbauen... So erzeugst du eine hohe Serverlast.
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination.
Bleistift ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 11:46 Nach oben    #9
Neuer Benutzer
 
Registriert seit: 15.08.2007
Beiträge: 5
Standard

Ich behaupte ja nicht, dass meine Lösung das Ei des Kolumbus wäre.
Im unwahrscheinlichen worst case würde das Script drei Sekunden laufen und dann auf jeden Fall abbrechen. Die generierten PDF sind nicht größer als 70 kb.

Ich denke aber auch, dass ein dynamisch erzeugter Anhang (das mit dem Header) a la Ben eleganter ist, und würde das auch gerne mit dem phpMailer machen, wenn ich das denn könnte oder wüsste wie.

Mit dem phpMailer weiß ich es jedenfalls nicht.
Error123 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 11:56 Nach oben    #10
Erfahrener Benutzer
 
Benutzerbild von Bleistift
 
Registriert seit: 31.12.2006
Ort: Zürich
Beiträge: 298
Standard

Mach es wenigstens so:
PHP-Code:
while (! file_exists ($BestNr.".pdf")) {
    if (
date ('s') >= $ende) {
        echo 
"&ErrInfo=Time Out erreicht&";    
        exit;
    }
    
usleep(100); //100 Mikrosekunden warten

Dann hält sich die Auslastung in Grenzen.
__________________
. <-- This is Punkt. Copy Punkt into your signature to help him on his way to world domination.
Bleistift ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 14:40 Nach oben    #11
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Zitat:
Zitat von Error123 Beitrag anzeigen
Im unwahrscheinlichen worst case würde das Script drei Sekunden laufen und dann auf jeden Fall abbrechen. Die generierten PDF sind nicht größer als 70 kb.
Das mit dem PHPMailer ist ne andere Sache, die man im entsprechenden Manual/Forum nachschlagen/nachfragen kann, aber nochmal zum Verständnis: Es st schnurzegal, wie lange das Script läuft. Ob es drei oder 5 Sekunden läuft. Es hat (eine zeitlich terminierte) Endlosschleife drinnen OHNE sleep. Es wird sich also prosa gesprochen immer für diese 5 Sekunden (oder wieviel es ist bis die Datei fertig ist) die voll zur Verfügung stehenden CPU- Ressourcen und I/O-Ressourcen krallen.
Ein Webspace-Vermieter setzt auf Fair-Usage, hat also auf einem Server gleich zig Kunden am Laufen. Wenn du dann massiv Ressourcen verbraucht durch so einen programmtechnischen Quatsch, wird er dir wohl ziemlich schnell kündigen (siehe AGB), weil du damit massiv die Server selbst beeinträchtigst. Wenn das PDF nur einmal am Tag erzeugt wird, hast du vielleicht Glück und es merkt keiner. Wird einmal pro Sekunde ein PDF abgefragt, fliegts dir um die Ohren. So einfach ist das.

Lange Rede kurzer Sinn: Entweder ein vernünftiges Sleep bei sowas einbauen oder schauen, wie du es anders geregelt kriegst (siehe Links, sowie angesprochenes Manual).
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.08.2007, 16:51 Nach oben    #12
Neuer Benutzer
 
Registriert seit: 15.08.2007
Beiträge: 5
Standard

@mepeisen: Du hast ja recht.
Ich habe den Vorschlag von Ben an mein Script angepasst.
Für alle, die ein ähnliches Problem mit dem phpMailer haben sollten und nicht wissen, wie man PDF's dergl. dynamisch verschickt:

PHP-Code:
AddStringAttachment 
(string $stringstring $filename, [string $encoding "base64"], [string $type "application/octet-stream"]) 
http://phpmailer.sourceforge.net/doc...PHPMailer.html
Error123 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abeschnittene Email - php.ini Datei problem bentobento PHP-Programmierung 2 25.08.2007 10:48
FPDF 3 Klassen für 3 Dokumente-Arten ex³ PHP-Programmierung 9 21.02.2006 19:15
php5 pdf klasse? ex³ PHP-Programmierung 4 19.02.2006 12:41
DB und PDF Klasse kombinieren ex³ PHP-Programmierung 2 27.12.2005 21:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:42 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44