Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Formularz - problem z załącznikami
Forum PHP.pl > Forum > Przedszkole
amstaff
Witam!

Dopiero zaczynam przygodę z PHP, więc proszę o wyrozumiałość smile.gif
Postanowiłem zrobić formularz z załącznikami. Poprzeglądałem różne fora, tutoriale itd., i stworzyłem dosć prosty formularz, którym ma być wysyłany wraz z załącznikami. I tu pojawia się problem, gdyż z jednym załącznikiem nie ma problemu. Niestety, gdy dokładam kolejne nie wysyłają się (poza tym jednym) :/ Proszę o pomoc.

Fragment kodu html (formularz):

  • if (is_uploaded_file($plik_nazwa_tmp))
  •  {
  •    $tresc .="--___$znacznik==n";
  •    $tresc .="Content-Type: image/gifn";
  •    $tresc .="Content-Disposition: attachment;n";
  •    $tresc .=" filename="$plik_nazwa_oryginalna"n";
  •    $tresc .="Content-Transfer-Encoding: base64nn";
  •    $f = fopen($plik_nazwa_tmp,"rb");
  •    $dane = fread($f,filesize($plik_nazwa_tmp));
  •    fclose($f);
  •    $tresc .= chunk_split(base64_encode($dane));
  •    $tresc .="--___$znacznik==--n";
  •  }
  •  
  •  // nagłówki i obsługa załącznika
  •  $plik_nazwa_tmp = $_FILES["plik2"]["tmp_name"];
  •  $plik_nazwa_oryginalna = $_FILES["plik2"]["name"];
  •  $plik_wielkosc = $_FILES["plik2"]["size"];
  •  
  •  
  • if (is_uploaded_file($plik_nazwa_tmp))
  •  {
  •    $tresc .="--___$znacznik==n";
  •    $tresc .="Content-Type: image/gifn";
  •    $tresc .="Content-Disposition: attachment;n";
  •    $tresc .=" filename="$plik_nazwa_oryginalna"n";
  •    $tresc .="Content-Transfer-Encoding: base64nn";
  •    $f = fopen($plik_nazwa_tmp,"rb");
  •    $dane = fread($f,filesize($plik_nazwa_tmp));
  •    fclose($f);
  •    $tresc .= chunk_split(base64_encode($dane));
  •    $tresc .="--___$znacznik==--n";
  •  }
  •  
  •   // nagłówki i obsługa załącznika
  •  $plik_nazwa_tmp = $_FILES["plik3"]["tmp_name"];
  •  $plik_nazwa_oryginalna = $_FILES["plik3"]["name"];
  •  $plik_wielkosc = $_FILES["plik3"]["size"];
  •  
  •  
  • if (is_uploaded_file($plik_nazwa_tmp))
  •  {
  •    $tresc .="--___$znacznik==n";
  •    $tresc .="Content-Type: image/gifn";
  •    $tresc .="Content-Disposition: attachment;n";
  •    $tresc .=" filename="$plik_nazwa_oryginalna"n";
  •    $tresc .="Content-Transfer-Encoding: base64nn";
  •    $f = fopen($plik_nazwa_tmp,"rb");
  •    $dane = fread($f,filesize($plik_nazwa_tmp));
  •    fclose($f);
  •    $tresc .= chunk_split(base64_encode($dane));
  •    $tresc .="--___$znacznik==--n";
  •  }
  •  
  •  
  • // wysłanie listu
  •     if (mail($odbiorca,$tytul,$tresc,$naglowki))
  •   {
  •   print "E-mail z załącznikiem został wysłany poprawnie.";
  •   }
  •   else
  •   {
  •   print "E-mail NIE został wysłany poprawnie.
  •   <br>Prosimy o <a href="java script:history.back();">powrót</a> i wysłanie e-maila ponownie.";
  •   }
  • }
  • ?>

    [/list]
    [PHP] Kod


    Niestety nie wiem czy dobrze kombinowałem. Nie bardzo wiem jak odnieść się później do takiej tablicy w php. Wszelkie próby kończyły się na tym, że załączniki nie były wysyłane w ogóle.

    Z góry dziękuję za pomoc.
  • amstaff
    Qrcze...brakuje mi trochę podstaw. Zagmatwałem się i teraz w ogóle załączników nie wysyła sad.gif

    Czyli kod w html ma wyglądać następująco:

    Kod
    <INPUT type="file" name="plik1[]" style="font-size: 10px; height: 18px;vcolor: #FFFFFF; background-color: #666666">


    questionmark.gif

    A plik wyslij.php wygląda teraz tak:


    Kod
    foreach($_FILES as $k=>$v){
       // nagłówki i obsługa załącznika
      $plik_nazwa_tmp = $_FILES["plik1".$v]["tmp_name"];
      $plik_nazwa_oryginalna = $_FILES["plik1".$v]["name"];
      $plik_wielkosc = $_FILES["plik1".$v]["size"];
      
      
    if (is_uploaded_file($plik_nazwa_tmp))
      {
        $tresc .="--___$znacznik==\n";
        $tresc .="Content-Type: image/gif\n";
        $tresc .="Content-Disposition: attachment;\n";
        $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
        $tresc .="Content-Transfer-Encoding: base64\n\n";
        $f = fopen($plik_nazwa_tmp,"rb");
        $dane = fread($f,filesize($plik_nazwa_tmp));
        fclose($f);
        $tresc .= chunk_split(base64_encode($dane));
        $tresc .="--___$znacznik==--\n";
      }
    }


    Oczywiście nie działa :/ Coś qrcze robię nie tak. Jakiś bubel mi wyszedł.
    Przepraszam za moją niewiedzę. Chyba porwałem się na zbyt trudną rzecz jak na początek. Może jednak ktos mi to rozpisze.
    Z góry dziękuję za pomoc smile.gif
    Invision Power Board © 2001-2025 Invision Power Services, Inc.