Wysyłanie dwóch załączników poprzez formularz na konrektnego maila

0

Witam, zgłupiałem już, i nie mam pojęcia dlaczego nie mogę dodać drugiego załącznika, wysyła się tylko jeden.

Proszę o jakieś wskazówki, kod do wysyłania załącznika znalazłem w internecie.

Kod:

 
<!--HEADER-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<META HTTP-EQUIV="Creation-date" CONTENT="2002.03.16">
<META HTTP-EQUIV="Reply-to" CONTENT="adres zwrotny">
<META NAME="Description" CONTENT="opis dokumentu">
<META NAME="Author" CONTENT="autor dokumentu">
<META NAME="Generator" CONTENT="Zaj±czek 3.0">
<TITLE>Poczta z zał±cznikiem</TITLE>
</HEAD>
<BODY>

<?php

srand((double)microtime()*1000000);
$znacznik = md5(uniqid(rand()));

//Dane o odbiorcy, nadawcy
$mojadres="[email protected]"; #Tutaj należy wpisać swój adres mail
$tytul=$_POST['temat'];
$tresclistu =$_POST['xyz'];
$nadawca =$_POST['odkogo'];
$nadawca_mail=$_POST['odkogo'];

// definicja nagłówków
  $naglowki  = "From: $nadawca <$nadawca_mail>\n";
  $naglowki .= "MIME-Version: 1.0\n";
  $naglowki .= "Content-Type: multipart/mixed;\n";
  $naglowki .= "\tboundary=\"___$znacznik==\"";

// nagłówki listu
  $x="--___$znacznik==\n";
  $x .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
  $x .="Content-Transfer-Encoding: 8bit\n";
  $x .="\n$tresclistu\n";

// nagłówki i obsługa zał±cznika
  $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
  $plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
  $plik_wielkosc = $_FILES["plik1"]["size"];
  
  $plik_nazwa_tmp2 = $_FILES["plik2"]["tmp_name"];
  $plik_nazwa_oryginalna2 = $_FILES["plik2"]["name"];
  $plik_wielkosc2 = $_FILES["plik2"]["size"];

if ((is_uploaded_file($plik_nazwa_tmp)) && (is_uploaded_file($plik_nazwa_tmp2)) )
  {
    $x .="--___$znacznik==\n";
    $x .="Content-Type: image/gif\n";
    $x .="Content-Disposition: attachment;\n";
    $x .=" filename=\"$plik_nazwa_oryginalna\"\n";
    $x .=" filename=\"$plik_nazwa_oryginalna2\"\n";
    $x .="Content-Transfer-Encoding: base64\n\n";
    $f = fopen($plik_nazwa_tmp,"rb");
    $g = fopen($plik_nazwa_tmp2,"rb");
    $dane = fread($f,filesize($plik_nazwa_tmp));
    fclose($f);
    $dane1 = fread($g,filesize($plik_nazwa_tmp2));
    fclose($g);
    $x .= chunk_split(base64_encode($dane));
    $x .= chunk_split(base64_encode($dane1));
    $x .="--___$znacznik==--\n";
  }
  
 


If (isset($_POST['temat'],$_POST['xyz'],$_POST['odkogo']) &&
(!($_POST['temat']=="") && !($_POST['xyz']=="") && !($_POST['odkogo']=="")))
{
mail($mojadres,$_POST['temat'],$x,$naglowki);
echo("<center><br><Font color=\"#e67b42\"><h3>Wiadomosc zostala wyslana</Font></h3></center></br>");
}
elseif (isset($_POST['temat'],$_POST['xyz'],$_POST['odkogo']) &&    #xxx
    ($_POST['temat']=="" || $_POST['xyz']=="" || $_POST['odkogo']=="")) #xxx
{
echo("<center><br><Font color=\"red\"><h3>Nie wyslano wiadomosci. Prosze wypełnić wszystkie pola</Font></h3><br>");
echo("<center><b><Font color=\"#e67b42\"><a href=\"Email3.php\">Wy¶lij wiadomo¶ć jeszcze raz</a></Font>");
}
else
{
?>
<center>
<Font size="2"><h3>Wysyłanie maila z zał±cznikiem </Font></h3><br>
<form  method="POST" ENCTYPE="multipart/form-data">
<Font size="2">Temat wiadomo¶ci:<br>
<input type="text" name="temat" size="22"style="border-width:1; border-color:#635A5A; background-color:#dedede"><br><br>
<Font size="2">Tre¶ć wiadomo¶ci:<br>
<textarea name="xyz" cols="30" rows="10" style="border-width:1; border-color:#635A5A; background-color:#dedede"></textarea><br><br>
<Font size="2">Nadawca:<br>
<input type="text" name="odkogo" size="22"style="border-width:1; border-color:#635A5A; background-color:#dedede"><br><br>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <br>
Zał±cznik:
<INPUT type="file" name="plik1" style="border-width:1; border-color:#635A5A; background-color:#dedede"><br>
<INPUT type="file" name="plik2" style="border-width:1; border-color:#635A5A; background-color:#dedede"><br>
<br>

<input type="submit" value="Wy¶lij wiadomo¶ć" style="border-width:1; border-color:#635A5A; background-color:#dedede"><br><br><br>
</form>
<?php
}

?>

</BODY>
</HTML>
<!--/FOOTER-->
0

użyj biblioteki phpMailer, oszczędź sobie nerwów,
zamiast pisania dziesiątek linii kodu, których i tak nie rozumiesz zrobisz sobie coś w stylu $mail->addAttachment($sciezka_do_pliku); i tyle twoich zmartwień

0

Też próbowałem.

Załużmy że mam

<input type="file" name="plik1" />
<input type="file" name="plik2" />

I teraz chce użyć tej biblioteki phpMailer, skonfigurowałem ją itd, przyszedł czas na załączniki.
Przeczytałem wcześniej że jest oddzielna tablica $_FILE dla plików.

Więc spróbowałem tego i wpisałem

$mail->addAttachment($_FILE['plik1']); 
$mail->addAttachment($_FILE['plik2']);

załączniki i tak nie doszły.

Więc w czym jest problem ? Wiem że to działa w momencie kiedy mam jakiś plik na serwerze, ale to nie o to chodzi.

dodanie znaczników <code class="xml"> i <code class="php"> - @furious programming

1

Zrób sobie

 var_dump($_FILE['plik1']);

i zobacz co się wyświetli.
Masz przekazać ścieżkę do pliku a nie wszystkie dane z $_FILE

1 użytkowników online, w tym zalogowanych: 0, gości: 1