Mehrere Bilder als Anhang versenden

PHP:
<?php

$target = "upload.php";

?>

<HTML>
<HEAD><TITLE>titel</TITLE>
<link rel="stylesheet" type="text/css" href="upload.css">
</HEAD>


<BODY>

<FORM ENCTYPE="multipart/form-data" ACTION="<?php echo($target); ?>" METHOD="post">
<div id="teillinks">
<img src="try2.gif" border="0" width="280" height="80"><br />
<img src="wo_style.jpg" border="0" width="277" height="374">

</div>

<div id="teilrechtsFehler">

<TABLE BORDER="1">

                <TD COLSPAN="2">
                Felder mit einem (*) gekennzeichnet sind Pflichtfelder.
                </TD>
                </TR>

                <TR>
                <TD COLSPAN="2">* Name<br />
                <INPUT TYPE="text" NAME="name">
                </TD>

                </TR>


                       <TR>

                <TD COLSPAN="2">* E-Mail<br />
                <INPUT TYPE="text" NAME="email">
                </TD>

                       </TR>


                      <TR>

                <TD COLSPAN="2">* Sraße<br />
                <INPUT TYPE="text" NAME="adresse">
                </TD>

                </TR>


                       <TR>

                <TD COLSPAN="2">* PLZ und Ort<br />
                <INPUT TYPE="text" NAME="plzort" SIZE="8">
                </TD>
                </TR>


                <TR>

                <TD COLSPAN="2">* Handynummer<br />
                <INPUT TYPE="text" NAME="mobile">
                </TD>

                </TR>



                <TR>

                <TD COLSPAN="2">Nachricht<br />
                <TEXTAREA ROWS="5" COLS="24" NAME="nachricht">
                </TEXTAREA>
                </TD>
                </TR>

                <TR>

                <TD COLSPAN="2">* Dateien vom Typ JPG hochladen, max. 300Kb<br />
                <INPUT TYPE="file" NAME="pic1"><br /><INPUT TYPE="file" NAME="pic2"></TD></TR>

                <TR>
                <TD><input type="checkbox" name="cbox" value="einverstanden" size="2"></TD>

                <TD><font size="1">text</font></TD></TR>
                <TR>
                <TD>
                <INPUT TYPE="submit" VALUE="Senden"><br />
                <INPUT TYPE="reset" VALUE="Löschen"></FORM><br />
                </TD>
                </TR>



</div>

</TABLE>
</BODY>
</HTML>
PHP:
<link rel='stylesheet' type='text/css' href='upload.css'>

<div id="teillinks">
<img src='try2.gif' border='0' width='280' height='80'><br /><img src="wo_style.jpg" border="0" width="277" height="374">
</div>

<div id="teilrechtsFehler">
<?php

        $datei_max = "3000000"; // max. Dateigroesse in Byte
        $datei_ende = ".jpg"; // gewünschte Dateiendung
        $datei_mime = "image/jpeg";

        $time = time();

        $ziel .= date("d_m_y__H_i",$time).$datei_ende;

        $error_log = "<B>Folgende(r) Fehler sind (ist) aufgetreten:</B></br></br>";

        function check_post_value($input,$error,$check)
        {                if($check=='1'){
                                        if(empty($input)){
                                                return '<LI>Bitte geben Sie '.$error .'</br>';
                    }
                } else {
                     if(!is_numeric($input)){
                        return '<LI>In dem Feld Mobile sind nur Zahlen erlaubt.</br>';
                     }
                }
        }


//Angaben überprüfen

          $error = '';

        $error .= check_post_value($_POST['name'],'Ihren Namen ein!','1');
        $error .= check_post_value($_POST['adresse'],'Ihre Straße ein!','1');
        $error .= check_post_value($_POST['plzort'],'Ihre(n) PLZ/ Ort ein!','1');
        $error .= check_post_value($_POST['mobile'],'Ihre Nummer ein!','1');
        $error .= check_post_value($_POST['nachricht'],'Ihre Nachricht ein!','1');
        $error .= check_post_value($_POST['email'],'Ihre Emailaddresse ein!','1');
        $error .= check_post_value($_POST['mobile'],'Mobile ein!','0');
        $error .= check_post_value($_POST['cbox'],'sich damit einverstanden, dass Fotos von Ihnen gemacht werden!','1');


        if($file_size > $datei_max) {
                $error .= "<LI>Die Datei ist gr&ouml;&szlig;er als $datei_max Byte!</br>";
        }

        if ($file_type != "image/pjpeg" && $file_type != "image/jpeg") {
                $error .= "<LI>Der Dateityp ist falsch! Die Datei muss vom Typ $datei_ende sein.</br>";
        }
        if(@file_exists($ziel) or !@copy($file, $ziel)) {
            $error .= "<LI>Ein Fehler beim Kopieren der Datei $file_name ist aufgetreten!</br>";
        }

        if($error) {
            echo($error_log . $error . "<br /><b>Die Email wurde nicht versendet. Vorgang abgebrochen!</b>");
                        @unlink($file);
        }

//mail
        // $file = $ziel;
        //$file_name = $ziel;
        $from = $_POST['email'];
        $to = "email@provider.de";
        $betreff = "betreff";
        $boundary = strtoupper(md5(uniqid(time())));
        $message = 'Name:'.$_POST['name'].'
Email:'.$_POST['email'].'

Adresse:'.$_POST['adresse'].', '.$_POST['plzort'].'
Mobile: '.$_POST['mobile'].'

Nachricht:
'.$_POST['nachricht'];

        $mail_header  = "From:$from";
        $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: text/plain";
        $mail_header .= "\nContent-Transfer-Encoding: 8bit";
        //$mail_header .= "\n\n$message";
        $file1=fread(fopen($_FILES['pic1']['tmp_name'],"r"),filesize($_FILES['pic1']['tmp_name']));
        $file2=fread(fopen($_FILES['pic2']['tmp_name'],"r"),filesize($_FILES['pic2']['tmp_name']));
        $file1enc=chunk_split(base64_encode($file1));
        $file2enc=chunk_split(base64_encode($file2));
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: application/octetstream; name=\"$_FILES['pic1']['file_name']\"";
        $mail_header .= "\nContent-Transfer-Encoding: base64";
        $mail_header .= "\nContent-Disposition: attachment; filename=\"$_FILES['pic1']['file_name']\"";
        $mail_header .= "\n\n$file1enc";
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: application/octetstream; name=\"$_FILES['pic2']['name']\"";
        $mail_header .= "\nContent-Transfer-Encoding: base64";
        $mail_header .= "\nContent-Disposition: attachment; filename=\"$_FILES['pic2']['name']\"";
        $mail_header .= "\n\n$file2enc";
        $mail_header .= "\n--$boundary--";

                if (empty($error)) {
                        @mail($to,$betreff,$message,$mail_header);
                        @unlink($ziel);
                        echo "<BR><b>Die Email wurde versendet.</b>";
                        echo "<p><a href='javascript:window.close()'>Fenster schliessen</a>";
        } else {
        echo "<p><a href='javascript:history.back()'>Zurück zum Formular</a>";
        }




?>
</div>

Ich verzweifle langsam, ich hoch seit 2 stunden und kann den Fehler nicht finden :confused: .

Ich krieg immer nur das hier zusehen. Nur ich find nix!

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/web206/html/flashstyler/datmail/upload.php on line 93

Ich hab PHP 4.3
 
Jez. klappts soweit!
Aber wie kann ich die folgenden Zeilen nun an die zwei Files anpassen?

PHP:
$ziel .= date("d_m_y__H_i",$time).$datei_ende; 

...

if ($file_type != "image/pjpeg" && $file_type != "image/jpeg") {
                $error .= "<LI>Der Dateityp ist falsch! Die Datei muss vom Typ $datei_ende sein.</br>";
        }
        if(@file_exists($ziel) or !@copy($file, $ziel)) {
            $error .= "<LI>Ein Fehler beim Kopieren der Datei $file_name ist aufgetreten!</br>";
        }
 
reptiler hat gesagt.:
$_FILES ist ja ein Array.
Wenn Du folgendes hast
HTML:
<input type="file" name="pic1"><br>
<input type="file" name="pic1"><br>
findest Du die Daten ja in $_FILES['pic1'] und $_FILES['pic2']
Da es unnoetig ist mit move_uploaded_file die Bilder woanders hinzuschieben benoetigst Du nur tmp_name um die Daten zu lesen.
Also $_FILES['pic1']['tmp_name'] und $_FILES['pic2']['tmp_name']
Den richtigen Namen, zum setzen im Header, bekommst Du aus name.
Also $_FILES['pic1']['name'] und $_FILES['pic2']['name']

Wie Du in hier siehst ist $_FILES ein 2-dimensionales Array, das sollte Dir aber eigenltlich klar sein, da Du ja bereits erfolgreich eine Datei hochgeladen hast.
 
PHP:
<link rel='stylesheet' type='text/css' href='upload.css'>

<div id="teillinks">
<img src='try2.gif' border='0' width='280' height='80'><br /><img src="wo_style.jpg" border="0" width="277" height="374">
</div>

<div id="teilrechtsFehler">
<?php

        $datei_max = "3000000"; // max. Dateigroesse in Byte
        $datei_ende = ".jpg"; // gewünschte Dateiendung

        $time = time();

        //$ziel .= date("d_m_y__H_i",$time).$datei_ende;
        $error_log = "<B>Folgende(r) Fehler sind (ist) aufgetreten:</B></br></br>";

        function check_post_value($input,$error,$check)
        {                if($check=='1'){
                                        if(empty($input)){
                                                return '<LI>Bitte geben Sie '.$error .'</br>';
                    }
                } else {
                     if(!is_numeric($input)){
                        return '<LI>In dem Feld Mobile sind nur Zahlen erlaubt.</br>';
                     }
                }
        }


//Angaben überprüfen

          $error = '';

        $error .= check_post_value($_POST['name'],'Ihren Namen ein!','1');
        $error .= check_post_value($_POST['adresse'],'Ihre Straße ein!','1');
        $error .= check_post_value($_POST['plzort'],'Ihre(n) PLZ/ Ort ein!','1');
        $error .= check_post_value($_POST['mobile'],'Ihre Nummer ein!','1');
        $error .= check_post_value($_POST['nachricht'],'Ihre Nachricht ein!','1');
        $error .= check_post_value($_POST['email'],'Ihre Emailaddresse ein!','1');
        $error .= check_post_value($_POST['mobile'],'Mobile ein!','0');
        $error .= check_post_value($_POST['cbox'],'sich damit einverstanden, dass Fotos von Ihnen gemacht werden!','1');


        if($file_size > $datei_max) {
                $error .= "<LI>Die Datei ist gr&ouml;&szlig;er als $datei_max Byte!</br>";
        }

        /*if ($file_type != "image/pjpeg" && $file_type != "image/jpeg") {
                $error .= "<LI>Der Dateityp ist falsch! Die Datei muss vom Typ $datei_ende sein.</br>";
        }
        if(@file_exists($ziel) or !@copy($file, $ziel)) {
            $error .= "<LI>Ein Fehler beim Kopieren der Datei $file_name ist aufgetreten!</br>";
        }*/

        if($error) {
            echo($error_log . $error . "<br /><b>Die Email wurde nicht versendet. Vorgang abgebrochen!</b>");
                        @unlink($file);
        }

//mail
        $from = $_POST['email'];
        $to = "mail";
        $betreff = "betreff";
        $boundary = strtoupper(md5(uniqid(time())));
        $message = 'Name:'.$_POST['name'].'
Email:'.$_POST['email'].'

Adresse:'.$_POST['adresse'].', '.$_POST['plzort'].'
Mobile: '.$_POST['mobile'].'

Nachricht:
'.$_POST['nachricht'];

        // $file = $ziel;
        //$file_name = $ziel;

        $mail_header  = "From:$from";
        $mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: text/plain";
        $mail_header .= "\nContent-Transfer-Encoding: 8bit";
        //$mail_header .= "\n\n$message";
        $file1=fread(fopen($_FILES['pic1']['tmp_name'],"r"),filesize($_FILES['pic1']['tmp_name']));
        $file2=fread(fopen($_FILES['pic2']['tmp_name'],"r"),filesize($_FILES['pic2']['tmp_name']));
        $file1enc=chunk_split(base64_encode($file1));
        $file2enc=chunk_split(base64_encode($file2));
        $mail_header .= "\n--$boundary";
        $mail_header .="\nContent-Type: application/octet-stream; name=\"".$_FILES['pic1']['name']."\"";
        $mail_header .= "\nContent-Transfer-Encoding: base64";
        $mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['pic1']['file_name']."\"";
        $mail_header .= "\n\n$file1enc";
        $mail_header .= "\n--$boundary";
        $mail_header .= "\nContent-Type: application/octetstream; name=\"".$_FILES['pic2']['name']."\"";
        $mail_header .= "\nContent-Transfer-Encoding: base64";
        $mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['pic2']['name']."\"";
        $mail_header .= "\n\n$file2enc";
        $mail_header .= "\n--$boundary--";

                if (empty($error)) {
                        @mail($to,$betreff,$message,$mail_header);
                        //@unlink($ziel);
                        echo "<BR><b>Die Email wurde versendet.</b>";
                        echo "<p><a href='javascript:window.close()'>Fenster schliessen</a>";
        } else {
        echo "<p><a href='javascript:history.back()'>Zurück zum Formular</a>";
        }




?>
</div>

Das problem ist... die Files werden versandt, allerdings wird der Text nich mit versandt.
 
Zurück