php-Array aus Formular übergeben

anti43

nicht mehr wegzudenken
hallo!

ich möchte folgendes array, was jetzt fest im php script steht , aus einem html formular übergeben :

PHP:
    // Array mit Auftragsbeschreibung und Betrag
   $AUFTRAG = array(
        'Preis: was weis ich, Kaffee holen, Blumen giessen ...' => 0.99,
        'Preis: Bild einfügen' => 49.50,
        'Preis: Flash-Intro erstellen' => 749.90,
                            );
:)
kann mir jemand helfen ? das formular soll mit post werte übergeben, mit normalen werten gehts aber das array mit den zahlenwerten und so bekomm ich nicht hin...
 
Mit einem anständigen Array-Index geht das ohne Probleme
HTML:
<form name="formular" method="post" action="test.php">
  <input name="auftrag[preisKaffee]" type="text"/><br />
  <input name="auftrag[preisBlumen]" type="text"/><br />
  <input name="auftrag[preisFlashintro]" type="text"/><br />
  <input type="submit" name="Submit" value="Senden" />
</form>
Nun befinden sich nach dem Senden die Werte der Eingabefelder im Array $_POST['auftrag']
 
wow danke darauf bin ich nicht gekommen. habs jetzt etwas uneleganter gelöst indem ich in der "test.php" die übergebenen variablen zu einem array zusammengefügt habe.

hab aber noch ein problem:

ich möchte eine mit fpdf erzeugte datei einmal auf meinem ftp server speichern und einmal speichern unter-mässig ausgeben, und das am liebsten gleichzeitig.
mein code bisher, der seltsamerweise :) nicht funktioniert (es wird nicht hochgeladen und die erzeugte datei ist fehlerhaft). einzeln funktioniert das script, dh erzeugen und hochladen oder erzeugen und speichern unter geht.

PHP:
 <?php 
 error_reporting(E_ALL); 
 
 if ( isset($_GET['PDF']) ) { 
 if ($_GET['PDF'] == 'OUT') { 
 
 require('fpdf.php'); // das eigentliche PHP-Modul 
 
 
     // eine neues PDF-Dokument anlegen 
     // Hochformat, Einheit in mm und Gr A4 
     $pdf=new FPDF('P','mm','A4'); 
     $pdf->AddPage(); 
 
 
 # ------------------------------------------------------------------- # 
 
     // Voreinstellungen 
 
     $STS = 16; // Steuersatz ( 16% ); 
     $ZW_SUMME = 0; // Zwischensumme zunaechst auf 0 setzen
 
    //array erstellen
     $AUFTRAG = array($ARTIKEL_1 => $PREIS_1, $ARTIKEL_2 => $PREIS_2, $ARTIKEL_3 => $PREIS_3, $ARTIKEL_4 => $PREIS_4, $ARTIKEL_5 => $PREIS_5, $ARTIKEL_6 => $PREIS_6, $ARTIKEL_7 => $PREIS_7, $ARTIKEL_8 => $PREIS_8); 
 
 
 
           $pdf->Image('logo1kl.jpg', 80, 10, 0, 0, '', ''); 
 
     // Scriftfarbe definieren 
     $pdf->SetTextColor(10,10,10); 
 
     $pdf->SetY(35); 
     $pdf->SetFont('Arial', 'U', 10); 
     $pdf->Cell(0, 7, '', 0, 1,'L'); 
 
 
 
 
     // Anschrift erstellen 
     $pdf->SetY(40); 
     $pdf->SetFont('Arial', 'B', 12); 
     $pdf->Cell(0, 7, $A_FIRMA, 0, 1); 
     $pdf->Cell(0, 7, $A_NAME, 0, 1); 
     $pdf->Cell(0, 7, $A_STR, 0, 1); 
     $pdf->Cell(0, 10, $A_ORT, 0, 1); 
 
     // Wort Rechnung erstellen 
     $pdf->SetY(110); 
     $pdf->SetFont('Arial', 'B', 18); 
     $pdf->Cell(0, 7, 'RECHNUNG', 0, 1); 
 
     // schrift festlegen 
     $pdf->SetFont('Arial','',10); 
 
     // jetzt wird es richtig schoen ... 
     $pdf->SetY(113); // neuen Y-Punkt setzen 
 
     // Textfelder setzen 
     $pdf->Cell(0, 7, 'Saarburg, '.date("d.m.Y"), 0, 1, 'R'); 
     $pdf->Cell(0, 7, 'Kundennr.: '.$KU_NR.'     Rechnungnr.: '.$RE_NR, 0, 1); 
     $pdf->Cell(0, 7, 'Artikel', 0, 0); 
     $pdf->Cell(0, 7, 'Betrag in EUR', 0, 1, 'R'); 
 
     $pdf->Line(10, 133, 200, 133); // einfache Linie 
 
     // Array mit Aufträgen inkl. Summe ausgeben 
     foreach ($AUFTRAG as $WAS => $NETTO) { 
 
         // Geldangaben schoen formatieren und addieren fuer Zwischensumme ( ZW_SUMME ) 
         $NETTO = number_format( $NETTO, 2, ".", ""); 
         $ZW_SUMME = $ZW_SUMME + $NETTO; 
 
         $pdf->Cell(0, 7, $WAS, 0, 0); 
         $pdf->Cell(0, 7, $NETTO, 0, 1, 'R'); 
 
     } 
 
     // MwSt ermitteln und Gesamtbetrag errechnen ( mit 16% ) 
     $MWST = number_format( $ZW_SUMME * ($STS / 100), 2, ".", ""); 
     $END_SUMME = $MWST + $ZW_SUMME; 
 
     $pdf->Line(10, 240, 200, 240); // einfache Line 
 
     $pdf->SetY(220); // neuen Y-Punkt setzen 
     //  $pdf->Cell(0, 7, $ZEITRAUM, 0, 1); 
 
     //  Summe und MwST müssen noch mit rein 
     $pdf->Cell(0, 7, 'Summe :   '.$ZW_SUMME, 0, 1, 'R'); 
     $pdf->Cell(0, 7, 'MwSt '.$STS.'% :   '.$MWST, 0, 1, 'R'); 
 
     $pdf->SetFont('Arial', 'B', 10); 
     $pdf->Cell(0, 7, 'Gesamtbetrag :   '.$END_SUMME.'  EURO', 0, 1, 'R'); 
 
 
 
     $pdf->SetY(241); // neuen Y-Punkt setzen 
     $pdf->SetFont('Arial', '', 10); 
     $pdf->Cell(0, 5, 'Wir bitten um Überweisung des Gesamtbetrages innerhalb 7 Tagen auf u.a Bankverbindung.', 0, 1,'L'); 
 
     $pdf->SetY(-33); // neuen Y-Punkt setzen 
 
     $pdf->SetFont('Arial', '', 9); 
 
     $pdf->Cell(0, 4, ' 
 ', 0, 1, 'L'); 
     $pdf->Cell(0, 4, ' 
 ', 0, 1, 'L'); 
     $pdf->Cell(0, 4, ' 
 ', 0, 1, 'L'); 
 
 //Wenn man das "F" durch ein "D" ersetzt, weist man fpdf.php an die Datei zum speichern anzubieten, alternativ dazu sollte das mit der header- geschichte weiter unten gehen.
 $filepath = "data/"; 
 $filename ="_rechnung.pdf"; 
 $file=$filepath.$RE_NR.$filename; 
 $pdf->Output($file, 'F'); 
 
 
 
// Hier soll die Datei ausgegeben werden, tut sie auch , ist aber fehlerhaft 
 header('Content-type: application/pdf'); 
 header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
 
 
 
 
 $ftp_server="www.xxx.de"; 
 $ftp_user_name="www.xxx.de"; 
 $ftp_pass="xxx"; 
 
 
 // Herstellen der Basis-Verbindung 
 $conn_id = ftp_connect($ftp_server); 
 
 // Einloggen mit Benutzername und Kennwort 
 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_pass); 
 
 // Verbindung überprüfen 
 if ((!$conn_id) || (!$login_result)) { 
         echo "\nFtp-Verbindung nicht hergestellt!"; 
         echo "\nVerbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich"; 
         die; 
     } else { 
         echo "\n Verbunden mit $ftp_server als \n Benutzer $ftp_user_name \n"; 
     } 
 
 // Upload der Datei 
 
 if (ftp_chdir($conn_id, "/backups/rechnungen/upload/")) 
 
               { 
 
               echo "Verzeichnis: " . ftp_pwd($conn_id) . "\n"; 
 
               } 
           else 
               { 
 
               echo "Fehler\n"; 
 
               } 
 
 $upload = ftp_put($conn_id, $RE_NR.$filename, $file, FTP_BINARY); 
 
 // Upload-Status überprüfen 
 if (!$upload) { 
         echo "Ftp upload war fehlerhaft!\n"; 
     } else { 
         echo "\nDatei $RE_NR.$filename auf $ftp_server als $file geschrieben\n"; 
     } 
 
 // Schließen des FTP-Streams 
 ftp_quit($conn_id); 
 
 
 
 
 
  } 
 } 
 ?>
 
Auf den ersten Blick wird die Ursache wohl darin liegen, dass du nach dem Header header('Content-type: application/pdf'); noch Texte per echo ausgibst. Diese werden allerdings überraschenderweise ;) nicht auf dem Bildschirm ausgegeben, sondern in deine PDF-Datei geschrieben, bzw. daran angehängt, was sie wohl ungültig macht.

Auf die Schnelle würde ich die echo-Anweisungen mal auskommentieren.
 
ok, ohne echos speichert er auf dem ftp-server die richtige datei und gibt eine defekte aus... ich erkundige mich mal im fpdf forum , scheint ein fpdf problem zu sein
 
Du gibst ja auch gar nichts aus. :)

header('Content-type: application/pdf'); <- Dateityp
header('Content-Disposition: attachment; filename="'.basename($file).'"'); <- Dateiname

Wo bleibt die Datei?
 
oh mann bin ich ein depp und du genial !
natürlich fehlt ein
PHP:
 readfile($file);

seltsamerweise kam die ausgabe ja, nur mit ohne datei. danke !
 
hmpf nochmal!

jetz geht alles, aber die infos vom ftp upload würd ich schon gerne sehen.. wenn ich aber sdie header sache hinter den ftp upload stelle und die echos wieder einkommentiere gibts nur datenmüll...
 
Oben