Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Gromadzenie tekstu i plikow
Matiash
post 8.04.2007, 22:33:02
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


Witam, otoz chcialbym umiescic na moejej stronie formularz w ktorym uzytkownicy serwisu mogliby napisac temat wiadomosci, tresc wiadomosci i dolaczoyc kilka plikow ( okolo 10, ale za to do 200kb ) i zeby to wszystko bylo zapisane na serwerze lub wyslane na maila. Probowalem juz wiele sposobow. ( phpmailer, funkcja mail- tu prawie mi sie udalo ale zawsze wysyla mi tylko jeden plik + tekst a nie wszystkie zalaczone ) ale nikt mi nie pomogl, siedzie juz nad tym od dluzszego czasu. Pisalem kilka innych postow, odpowiedzi albo byly niejasne albo w ogole. Inni pisali krotko: skorzystaj z phpmailer... - lecz nie potrafili podac zadnych konkretow.

Czy mozecie mi cos poradzic ?


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
rojmarek
post 9.04.2007, 08:00:09
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 10.09.2005

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


Cytat(Matiash @ 8.04.2007, 21:33:02 ) *
zeby to wszystko bylo zapisane na serwerze lub wyslane na maila.

lub? na serwerze tez Ci tego nie zapisuje? jak są takie problemy, to nie mozesz wysłać 10 maili... wieczorem siąde, bo teraz nie mam czasu, to zobacze jak to jest z wieksza iloscia pliku przy wysyłce...
Go to the top of the page
+Quote Post
Matiash
post 9.04.2007, 10:13:43
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


-jak korzystam z funkcji mail to niestety ale zawsze wysyla mi tylko jeden zalcznik + tekst z formularza, probowalem juz wszystkeigo i nie da sie kilku bo albo serwer sie wiesza albo dochodzi tylko jeden. Co do zapisywania danych na serwerze to nie mam pomyslu jak to zrobic zeby tekst + pliku dolaczone (chodzi o 10 obrazkow jpg ) w formularzu byly jakos sensownie zapisywane. Ze jak Jan Kowalski mi posle tekst + te kilka zalczinikow i wszystko to zostanie zapisane w folderze upload, a nastepnie Jan Nowak zrobi to samo i jeszcze pare innych osob to bede mial straszny balagan w tym folderze upload i dojdzie do tego ze nie bede wiedzial czyje zalczniki sa od kogo. Idealnym rozwiazanie byloby ze jak ktos wpisuje w formularzu np tytul: Jan Kowalski, to automatycznie tworzy mi sie folder na serwerze "Jan Kowalski " i w nim zostaje zapisana wlasciwa tresc formularza oraz te zalczniki.
-Natomiast jesli tresc formularza + zalaczniki bylyby wysylane na maila, to automatycznie mialbym to segregowane.

Szczerze to jest mi obojetne ktora metode zastosuje, choc teraz wydaje mi sie ze upload plikow bylby lepszym rozwiazaniem

----------------------------
Sorki ze tak sie rozpisalem ale chcialem opisac dokladnie moj problem, bo nie mam kompletnie zadnego pomyslu jak to zrobic. Mam nadzieje na Wasza pomoc winksmiley.jpg


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
rojmarek
post 9.04.2007, 12:05:47
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 10.09.2005

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


generalnie wszystko o czym mówisz jest możliwe do osiągnięcia :]
zaraz sobie popróbuje wysłać więcej załaczników;]
co mi przyszło do głowy: możesz pliki (jakkolwiek) zapisać na serwerze, no a na maila sobie wysyłać linki do tych plików...

jak potrzebujesz dokładniejszej pomocy to napisz pm'ke, to może sie jakos dogadamy ;]
Go to the top of the page
+Quote Post
Matiash
post 9.04.2007, 13:45:39
Post #5





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


i jak udalo Ci sie ?

Uzywales funkcji mail () ?

rojmarek a jakiej funkcji trzeba uzyyc zeby "co mi przyszło do głowy: możesz pliki (jakkolwiek) zapisać na serwerze, no a na maila sobie wysyłać linki do tych plików..."

Takie cos jak napisales tez odpowiadalo by mi...

Co do mojego formularza to mam takie cos i dziala ale tylko z jedneym zalacznikiem

formularz.htm
  1. <FORM NAME="zalacznik" METHOD="post" ACTION="wyslij.php" ENCTYPE="multipart/form-data">
  2. <input type="hidden" name="wyslij" value="1" />
  3. <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  4. <INPUT type="file" name="plik1">
  5. <INPUT TYPE="SUBMIT" VALUE="Wyślij zalacznik">
  6. </FORM>


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


Jednak podczas proby wyslania kilku zalacznikow tzn powielilem ten fragment kodu ( oczywiscie ze zmienionymi nazwami z "plik" na np. "plik1" )

  1. <?php
  2. // nagłówki i obsługa załącznika
  3. $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
  4. $plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
  5. $plik_wielkosc = $_FILES["plik1"]["size"];
  6.  
  7. if (is_uploaded_file($plik_nazwa_tmp))
  8. {
  9. $tresc .="--___$znacznik==n";
  10. $tresc .="Content-Type: image/gifn";
  11. $tresc .="Content-Disposition: attachment;n";
  12. $tresc .=" filename="$plik_nazwa_oryginalna"n";
  13. $tresc .="Content-Transfer-Encoding: base64nn";
  14. $f = fopen($plik_nazwa_tmp,"rb");
  15. $dane = fread($f,filesize($plik_nazwa_tmp));
  16. fclose($f);
  17. $tresc .= chunk_split(base64_encode($dane));
  18. $tresc .="--___$znacznik==--n";
  19. }
  20. ?>


nie dzialalo wyslanie kilku zalacznikow.


Oczywiscie Twoje rozwiazania tez sa dobre tylko jak zrobic zeby mnie sie link wysylal na maila do plikow a tekst formularza na moja skrzynke. Takie cos byloby idealne !

Ten post edytował Matiash 9.04.2007, 14:03:39


--------------------
www.picture-globe.com
Go to the top of the page
+Quote Post
Kicok
post 9.04.2007, 18:09:19
Post #6





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


a próbowałeś wysłać maila z postaci:

Kod
--___boundary==
nagłówki pierwszego załącznika

zawartość pierwszego załącznika w base64
--___boundary==
nagłówki drugiego załącznika

zawartość drugiego załącznika w base64
--___boundary==
nagłówki trzeciego załącznika

zawartość trzeciego załącznika w base64
(...)
--___boundary==
nagłówki treści maila

treść maila w HTML


Nie pamiętam już gdzie się wstawiało dwa "entery", a gdzie jeden, ale to powinieneś znaleźć już na necie (np. podpatrując komentarze w manualu: mail" title="Zobacz w manualu PHP" target="_manual ;])


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Matiash
post 9.04.2007, 20:20:29
Post #7





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

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


probowalem nie wywala zadnego bledu ale przychodzi tylko jeden zalacznik.

A powiedzcie mi, jak jakiej funkcji uzyc zeby np dostac w mailu nie zalaczniki a linki do zuploadowanych plikow na serwerze ?


--------------------
www.picture-globe.com
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: 20.07.2025 - 06:20