Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]mail z załącznikiem, wiecej załączników
Malcolmek
post 23.02.2013, 14:57:15
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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


chcialbym bardzo wszystkich przywitac serdecznie.
Jestem totalnie raczkujacy.

Znalazlem na waszej stronie to czego wlasnie szukalem.
Skrypt do wysylania ze strony formularz + zalczniki (zdjecia)

Wszystko dziala, tylko nie wiem naprawde jak dodac aby byl wybor wiekszej ilosci zalacznikow.

w tej chwili jest jeden button "choose file" a chcialbym miec 4 wysylane pod jednego guzika sumujacego..

oto kod:

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


formularz html

  1. <FORM NAME="zalacznik" METHOD="post" ACTION="wyslij.php" ENCTYPE="multipart/form-data">
  2. Imię: <input type="text" id="nick" name="imie" ><br>
  3. Nazwisko: <input type="text" name="nazwisko" id="nazw"><br>
  4. Email:<input type="text" name="email" id="email" ><br>
  5. Tresc:<textarea name="tresc" id="tresc" rows="3" cols="20" ></textarea><br>
  6. <input type="hidden" name="wyslij" value="1" />
  7. <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  8. Załącznik <INPUT type="file" name="plik1"><br><br>
  9. <INPUT TYPE="SUBMIT" VALUE="Wyślij zalacznik">
  10. </FORM>


probowalem na wiele sposobow zmieniac formularz html i zawsze wysyla tylk ostatni zalacznik..
Moglbym prosic ewentualnie o zerkniecie okiem co mozna zmienic??

z gory bardzo dziekuje

podbijam...
Go to the top of the page
+Quote Post
grzes999
post 23.02.2013, 15:02:14
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Napisz w formularzu takie coś.
  1. Załącznik <INPUT type="file" name="plik1[]"><br><br>


Wtedy pliki będą zapisane w tablicy i za pomocą pętli to odbierzesz w php.
Go to the top of the page
+Quote Post
Malcolmek
post 23.02.2013, 20:06:38
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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


Zrobilem tak, ale w tej chwili zaden zalacznik nie dochodzi..


  1. <FORM NAME="zalacznik" METHOD="post" ACTION="wyslij.php" ENCTYPE="multipart/form-data">
  2. Imię: <input type="text" id="nick" name="imie" ><br>
  3. Nazwisko: <input type="text" name="nazwisko" id="nazw"><br>
  4. Email:<input type="text" name="email" id="email" ><br>
  5. Tresc:<textarea name="tresc" id="tresc" rows="3" cols="20" ></textarea><br>
  6. <input type="hidden" name="wyslij" value="1" />
  7. <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  8. Załącznik <INPUT type="file" name="plik1[]"><br><br>
  9. Załącznik <INPUT type="file" name="plik1[]"><br><br>
  10. Załącznik <INPUT type="file" name="plik1[]"><br><br>
  11.  
  12.  
  13.  
  14. <INPUT TYPE="SUBMIT" VALUE="Wyślij zalacznik">
  15. </FORM>
Go to the top of the page
+Quote Post
nospor
post 23.02.2013, 20:18:30
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




....
A kod php poprawiłeś?
Tak? - To go pokaż
Nie? - to go popraw do nowej struktury formularza...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Malcolmek
post 23.02.2013, 20:19:49
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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


nie poprawilem bo nie wiem jak...
Go to the top of the page
+Quote Post
daniel1302
post 23.02.2013, 20:20:36
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


http://jetlogs.org/2007/07/19/passing-input-arrays-in-php/
Go to the top of the page
+Quote Post
Malcolmek
post 23.02.2013, 20:39:45
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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


przepraszam mozecie mnie miec za totalnego imbecyla, ale niestety nie wiem jak to zrobic. Bylby ktos taki dobry i zobaczylby ten kod, tak aby dzialalo?

naprawde bede bardzo wdzieczny..
Go to the top of the page
+Quote Post
daniel1302
post 23.02.2013, 20:52:01
Post #8





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Cały gotowy kod masz w googlach(20 sec szukania)
http://krysk.jogger.pl/2008/02/13/php-mail...ail-attachment/

z tym, że $files u blogera to u ciebie $files = $_POST['pliki']
Go to the top of the page
+Quote Post
Malcolmek
post 23.02.2013, 20:59:56
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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


a moglbys wstawic to co napisales do tego skryptu? bo ja naprawde nei wiem gdzie. przepraszam ze tak mecze jeszcze jako nowy uzywtkownik, ale bardzo mi zalezy a nie mam do kogo sie zglosic..
  1. <?php
  2. //sprawdzenie czy załącznik pochodzi z formularza
  3. if ($_POST["wyslij"]==1)
  4. $nazwisko = $_POST["nazwisko"];
  5.  
  6. $imie = $_POST["imie"];
  7.  
  8. $email = $_POST["email"];
  9.  
  10. $tresc= $_POST["tresc"];
  11. {
  12. srand((double)microtime()*1000000);
  13. $znacznik = md5(uniqid(rand()));
  14.  
  15. // dane o odbiorcy, nadawcy
  16. $odbiorca="email@email.pl";
  17. $tytul="tytuł wiadomoscil";
  18. $nadawca = "Nadawca";
  19. $nadawca_mail="email@email.pl";
  20.  
  21. // treść listu
  22. $tresclistu = "
  23. Nazwisko: $nazwisko
  24. Imię: $imie
  25. email: $email
  26. tresc: $tresc
  27.  
  28. ";
  29.  
  30.  
  31. // definicja nagłówków
  32. $naglowki = "From: $nadawca <$nadawca_mail>\n";
  33. $naglowki .= "MIME-Version: 1.0\n";
  34. $naglowki .= "Content-Type: multipart/mixed;\n";
  35. $naglowki .= "\tboundary=\"___$znacznik==\"";
  36.  
  37. // nagłówki listu
  38. $tresc="--___$znacznik==\n";
  39. $tresc .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
  40. $tresc .="Content-Transfer-Encoding: 8bit\n";
  41. $tresc .="\n$tresclistu\n";
  42.  
  43. // nagłówki i obsługa załącznika
  44. $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
  45. $plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
  46. $plik_wielkosc = $_FILES["plik1"]["size"];
  47.  
  48.  
  49.  
  50. if (is_uploaded_file($plik_nazwa_tmp))
  51. {
  52. $tresc .="--___$znacznik==\n";
  53. $tresc .="Content-Type: image/gif\n";
  54. $tresc .="Content-Disposition: attachment;\n";
  55. $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
  56. $tresc .="Content-Transfer-Encoding: base64\n\n";
  57. $f = fopen($plik_nazwa_tmp,"rb");
  58. $dane = fread($f,filesize($plik_nazwa_tmp));
  59. fclose($f);
  60. $tresc .= chunk_split(base64_encode($dane));
  61. $tresc .="--___$znacznik==--\n";
  62. }
  63.  
  64. // wysłanie listu
  65. if (mail($odbiorca,$tytul,$tresc,$naglowki))
  66. {
  67. print "E-mail z załącznikiem został wysłany poprawnie.";
  68. }
  69. else
  70. {
  71. print "E-mail NIE został wysłany poprawnie.
  72. <br>Prosimy o <a href=\"java script:history.back();\">powrót</a> i wysłanie e-maila ponownie.";
  73. }
  74. }
  75. ?>
Go to the top of the page
+Quote Post
grzes999
post 24.02.2013, 11:08:34
Post #10





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Cytat(daniel1302 @ 23.02.2013, 20:52:01 ) *
Cały gotowy kod masz w googlach(20 sec szukania)
http://krysk.jogger.pl/2008/02/13/php-mail...ail-attachment/

z tym, że $files u blogera to u ciebie $files = $_POST['pliki']


Od kiedy pliki są w tablicy POST??

  1. for($i=0;$i<count($_FILE['plik1']['tmp_name']);$i++)
  2. {
  3. // tutaj robisz zapis jak robiłeś to poprzedni. Do parametrów pliku dostajesz się tak $_FILE['plik1']['tmp_name'][$i]
  4. }


I to wszystko. Jak jest jakiś błąd to sam kombinuj.
  1. for($i=0;$i<count($_FILE['plik1']['tmp_name']);$i++)
  2. {
  3. if (is_uploaded_file($_FILE['plik1']['tmp_name'][$i]))
  4. {
  5. $tresc .="--___$znacznik==\n";
  6. $tresc .="Content-Type: image/gif\n";
  7. $tresc .="Content-Disposition: attachment;\n";
  8. $tresc .=" filename=\"".$_FILES["plik1"]["name"][$i]."\"\n";
  9. $tresc .="Content-Transfer-Encoding: base64\n\n";
  10. $f = fopen($plik_nazwa_tmp,"rb");
  11. $dane = fread($f,filesize($_FILE['plik1']['tmp_name'][$i]));
  12. fclose($f);
  13. $tresc .= chunk_split(base64_encode($dane));
  14. $tresc .="--___$znacznik==--\n";
  15. }
  16. }


Ten post edytował grzes999 24.02.2013, 12:29:38
Go to the top of the page
+Quote Post
Malcolmek
post 26.02.2013, 12:27:03
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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




Dziekuje bardzo za pomoc. Jestem wdzieczny. Ale nadal nie dziala.. Moze jetsecie w stanie poprostu wpisac to w kod?
Go to the top of the page
+Quote Post
wNogachSpisz
post 26.02.2013, 18:28:47
Post #12





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


https://pear.php.net/manual/en/package.mail...dattachment.php
Go to the top of the page
+Quote Post
Malcolmek
post 6.03.2013, 17:16:40
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2013

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


niestety nie wiem nie znam sie.

Zlece oczywiscie odplatnie upgradowanie tego skrytptu jak w temacie.
Uprzejmie prosze chetnych na priv`a

podbijam. chetnie zlece przerobienie tego skryptu. Wiecej prosze na priv.

zlece oczywiscie za zaplate smile.gif
Go to the top of the page
+Quote Post

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: 12.07.2025 - 06:01