Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wysyłanie formularza z załącznikiem, Jak złączyć wysyłanie załącznika z innym formularzem php
marekpb
post 28.04.2009, 17:09:05
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam. Uczę się PHP robiąc różne strony formularze itp. Napotkałem taki problem, który nie mogę rozwiązać. Mam formularz i kod php do wysyłania wiadomości email:


  1. <?php
  2. ...
  3. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  4. elseif (!empty($_POST['typ']) && !empty($_POST['typ2']) && !empty($_POST['typ3']) && !empty($_POST['powierzchnia']) && !empty($_POST['pokoje']) && !empty($_POST['miejscowosc']) &&
  5. !empty($_POST['dzielnica']) && !empty($_POST['ulica']) && !empty($_POST['typ4']) && !empty($_POST['rok']) && !empty($_POST['cena']) && !empty($_POST['opis']) ) {
  6.    // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  7.    // zmienna $message zawiera treść wiadomości
  8.    $message = &#092;"Typ: $_POST[typ]\nTyp: $_POST[typ2]\nRodzaj: $_POST[typ3]\nPowierzchnia: $_POST[powierzchnia]\nIlość pokoi: $_POST[pokoje]\nMiejscowość: $_POST[miejscowosc]\nDzielnica: $_POST[dzielnica]\nUlica: $_POST[ulica]\nOpis:\n$_POST[opis]\";
  9.    // zmienna $header zawiera przede wszystkim adres zwrotny
  10.    $header = &#092;"From: $_POST[imie] <$_POST[email]>\";
  11.    // funkcja mail() za pomocą której wiadomość zostanie wysłana
  12.    @mail(&#092;"dsasda@gmail.com\",\"Wiadomosc ze strony WWW\",\"$message\",\"$tresc\", \"$header\")
  13.    or die('Nie udało się wysłać wiadomości');
  14.    // wyświetlenie komunikatu w przypadku powodzenia
  15.    echo &#092;"Wiadomość została wysłana poprawnie!
  16.  
  17. &#092;";
  18. }
  19. // lub w przypadku nie wypełnienia formularza do końca
  20. else echo &#092;"Wypełnij wszystkie pola formularza!
  21.  
  22. &#092;";
  23. ...
  24. ?>


I tutaj pojawia się problem, chciałem aby wysyłało mi załącznik do tego maila. Na pewnej stronce znalazłem taki kod dzięki któremu jest możliwe wysyłanie załącznika, lecz odbywa sie to poprzez wysyłanie nowej wiadomości, a ja chciałbym na tej samej co mam kod powyższy. Czy ktoś może mi powiedzieć jak połączyć poniższy kod z tym powyższym żeby działało ? Próbowałem już na kilka sposobów, lecz bez rezultatów. Czy ktoś może mi napisać ten kod ? Lub chciarz naprowadzić, bo nie do końca go rouzmiem ? Wierzę, że znajdzie się ktoś na tym forum kto zechce mi pomóc. Będę wdzięczny za odpowiedź. Pozdrawiam. Oto kod do wysyłania maila z załącznikiem:

  1. <?php
  2. //sprawdzenie czy załącznik pochodzi z formularza  
  3.  if ($_POST[&#092;"wyslij\"]==1)  
  4.  {  
  5.  srand((double)microtime()*1000000);  
  6.  $znacznik = md5(uniqid(rand()));  
  7.    
  8.  // dane o odbiorcy, nadawcy  
  9.  $odbiorca=&#092;"nazwa-twojego-maila@domena.pl\";  
  10.  $tytul=&#092;"Mail z zalaczniekiem\";  
  11.  $nadawca = &#092;"Mail ze strony\";  
  12.  $nadawca_mail=&#092;"mail-ze-strony@domena.pl\";  
  13.    
  14.  // treść listu  
  15.  $tresclistu = &#092;"tutaj piszesz całą treść maila\";  
  16.    
  17.  // definicja nagłówków  
  18.    $naglowki  = &#092;"From: $nadawca <$nadawca_mail>\n\";  
  19.    $naglowki .= &#092;"MIME-Version: 1.0\n\";  
  20.    $naglowki .= &#092;"Content-Type: multipart/mixed;\n\";  
  21.    $naglowki .= &#092;"\tboundary=\"___$znacznik==\"\";  
  22.    
  23.  // nagłówki listu  
  24.    $tresc=&#092;"--___$znacznik==\n\";  
  25.    $tresc .=&#092;"Content-Type: text/plain; charset=\"iso-8859-2\"\n\";  
  26.    $tresc .=&#092;"Content-Transfer-Encoding: 8bit\n\";  
  27.    $tresc .=&#092;"\n$tresclistu\n\";  
  28.    
  29.  // nagłówki i obsługa załącznika  
  30.    $plik_nazwa_tmp = $_FILES[&#092;"plik1\"][\"tmp_name\"];  
  31.    $plik_nazwa_oryginalna = $_FILES[&#092;"plik1\"][\"name\"];  
  32.    $plik_wielkosc = $_FILES[&#092;"plik1\"][\"size\"];  
  33.    
  34.  if (is_uploaded_file($plik_nazwa_tmp))  
  35.    {  
  36.      $tresc .=&#092;"--___$znacznik==\n\";  
  37.      $tresc .=&#092;"Content-Type: image/gif\n\";  
  38.      $tresc .=&#092;"Content-Disposition: attachment;\n\";  
  39.      $tresc .=&#092;" filename=\"$plik_nazwa_oryginalna\"\n\";  
  40.      $tresc .=&#092;"Content-Transfer-Encoding: base64\n\n\";  
  41.      $f = fopen($plik_nazwa_tmp,&#092;"rb\");  
  42.      $dane = fread($f,filesize($plik_nazwa_tmp));  
  43.      fclose($f);  
  44.      $tresc .= chunk_split(base64_encode($dane));  
  45.      $tresc .=&#092;"--___$znacznik==--\n\";  
  46.    }  
  47.    
  48.  // wysłanie listu  
  49.       if (mail($odbiorca,$tytul,$tresc,$naglowki))  
  50.     {  
  51.     print &#092;"E-mail z załącznikiem został wysłany poprawnie.\";  
  52.     }  
  53.     else  
  54.     {  
  55.     print &#092;"E-mail NIE został wysłany poprawnie.  
  56.    
  57. Prosimy o [url="%5C%22java script:history.back%28%29;%5C%22"]powrót[/url] i wysłanie e-maila ponownie.&#092;";  
  58.     }  
  59.  }  
  60.  ?>


Ten post edytował marekpb 25.05.2009, 08:32:35
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 05:40