PDF mit Variablen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PDF mit Variablen

    Ich habe ein php script mit einer mysql datenbank. während der nutzer die felder in dem script ausfüllt werde daten gesammelt (in einer session).
    an einer stelle will ich ihm ein angebot als pdf file erstellen. das klappt auch, wenn ich statische daten eingebe (mit fpdf natürlich). wenn ich einen button einrichte mit onclik=window.open.... dann kann ich von dem fenster nicht auf dei session zugreifen. wenn ich die pdf seite dann im gleichen fenster, wie das eigentlich script öffnen will, geht das nicht, weil ja schon ein header gesendet worden ist und das mag pdf nicht.
    also, frage, wie kann ich mit fpdf auf variablen meiner session zugreifen ?
    So dachte ich mir das...
    $anrede=$_SESSION['Anrede'];
    $pdf=cell(125,6,'$anrede',0);

    danke

  • #2
    hast du in dem pop auch session_start() drin?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      dank, jetzt ja, aber nun kommt ein fenster, und er will einen dateidownload anbieten dateiname: meinedatei.pdf dateityp adobe acrobat control for acticex

      wenn ich dann sage öffnen oder speicher, dann kommt, die datei xx.pdf von 127.0.0.1 kann nicht übertragen werden (nicht da oder nicht verfügbar)
      :-(

      Kommentar


      • #4
        dann musst du wohl noch ein bissle basteln ....

        oder auch den wichtigsten teil des codes posten. aber in den php-tags.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          na dann bin ich mal so frei ;-)
          PHP-Code:
          <?php
          define
          ('FPDF_FONTPATH','font/');
          require(
          'fpdf.php');
          $pdf=new FPDF('P','mm','A4');
          $pdf->AddPage(); 
          $pdf->SetFont('Arial','',13); 
          $anrede=$_SESSION['Anrede'];
          $pdf->Cell(125,6,"$anrede",0);
          .
          .
          .

          $pdf->AliasNbPages();
          $pdf->Output();
          ?>
          die frage wäre eben immer noch, wie kann ich meine ganzen session daten an ein neues fenster übergeben ? ich muss ja keinen button haben, der ein neues fenster öffnet, kann ja auch ein link sein, der dann die pdf datei erstellt...

          Kommentar


          • #6
            Na, wo ist denn für dich bitte der unterschied, ob du ein neues fenster öffnest, oder die PDF im Selben fenster öffnest? Okay, für dich mag es ein Unterschied sein. Der Server bekommt davon allerdings gar nichts mit, da HTTP ein zustandsloses Protokoll ist. Wo/was die Vorgängerseite ist, ist also gar nicht bekannt.

            Wie übergibst du die Session-Id an die folgeseite?

            Und genauso machst du das auch bei deinem Popupfenster. Gut ist.

            Kommentar


            • #7
              ich füge mal noch was hinzu .....

              session_start() sehe ich hier in dem schnipsel leider (noch) nicht. ich hoffe mal, dass du das dennoch im code hast.

              wenn ich es richtig sehe, generiert dir $pdf->Output(); ein fertiges pdf, welches direkt zum client gesendet wird. richtig?
              wo bitte ist dann der header mit dem content-type?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                genau $pdf->output() erzeugt eine fertige pdf datei mit hilfe von fpdf.
                ich mach das ja noch nicht sooo lange, wie übergebe ich denn die session id an die folgeseite ?
                bisher habe ich (nur ganz grob) eine seite mit footer, navi, main, header, die heisst index.php und ich übergebe immer ihr alles, daher hab ich die session id nie übergeben müssen, war einfach immer da.
                session_start() habe ich in die klasse fpdf eingefügt.
                ehrlich gesagt, weiß ich aber nicht, ob es da richtig ist bzw wo es richtig ist.

                Kommentar


                • #9
                  Original geschrieben von PfeifferN
                  session_start() habe ich in die klasse fpdf eingefügt.
                  ehrlich gesagt, weiß ich aber nicht, ob es da richtig ist bzw wo es richtig ist.
                  dort ist es mit sicherheit falsch platziert.

                  du sollst das session_start() an den anfang DEINER datei schreiben.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    hey, dit hab icke schon vorher probiert :-(
                    kommt dann folgende fehlermeldung.....

                    Warning: Cannot add header information - headers already sent by (output started at C:\xxx\test_angebot_3.php:4) in C:\xxx\fpdf.php on line 1043
                    FPDF error: Some data has already been output to browser, can't send PDF file

                    Kommentar


                    • #11
                      das header() gehört auch an den ANFANG der datei. lies mal hier nach ... www.php.net/header
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        ja, schon klar, ich hab ne datei (php) da steht gaaanz am anfang (vor jeglichem html) session_start(), dann kommen die ganzen pdf funktionen bzw nicht funktionen, sondern befehle und am schluss steht dann der $pdf->output(); dieser erzeugt dann eine neue seite (automatisch) das ist die pdf datei.
                        wenn ich nun kein session_start() eingebe klappt alles, wenn ich es eingebe kommt halt die fehlermeldung.
                        wie kann ich denn, wenn das hier nicht geht, die ganzen daten übergeben ? nein, nicht per post, das wäre ein wenig viel.
                        danke

                        Kommentar


                        • #13
                          in dieser datei darfst du keinerlei andere ausgaben haben.

                          so in etwa hat deine datei auszusehen. ......
                          PHP-Code:
                          session_start();
                          header('Content-Type: application/pdf');
                          $pdf = new PDF();
                          $pdf->erstelle_alle_dinge_fuer_das_pdf();
                          $pdf->output(); 
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            ich würde das ja glatt alles posten, aber das ist zu lang.
                            ich hab das auch so, in der output() datei nur das was du geschrieben hast, es kommt dann die meldung:

                            dateidownload
                            einige dateien können auf dem computer....
                            öffnen/speichern/abrechen/details

                            egal was ich dann klicke:

                            datei xx vom 127.0.0.1 kann nicht übertragen werden (nicht verfügbar oder konnte nicht geöffnet werden).
                            von zu hause werde ich mal die beiden dateien posten.

                            Kommentar


                            • #15
                              wenn du dateien postest, dann bitte als anhang. sonst isses zu lange.

                              ich denke eher, dass keine korrekten pdf-daten geliefert werden, wenn die datei nicht übertragen werden kann.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X