Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]mail z załącznikiem
dave666
post 3.01.2009, 22:22:15
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 1.04.2008

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


witam mam formularz wysyłania emaila z załączniekiem i zwykły email jak połaczyc te dwa skrypty mógłby mi kroś pomóc bo próbuje i próbuje i nic mi nie wychodzi temu zwracam się do was
  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="email@email.pl";
  10. $tytul="tytuł wiadomosci";
  11. $nadawca = "Nadawca";
  12. $nadawca_mail="odkogo@email.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.0\n";
  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: 8bit\n";
  27.  $tresc .="\n$tresclistu\n";
  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/gif\n";
  38.    $tresc .="Content-Disposition: attachment;\n";
  39.    $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
  40.    $tresc .="Content-Transfer-Encoding: base64\n\n";
  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. ?>

zwykły email
  1. <?php
  2. if (empty($_POST['nick']) || empty($_POST['nazw']) || empty($_POST['ulica']) || empty($_POST['kod']) || empty($_POST['miasto']) || empty($_POST['telefon']) || empty($_POST['mail']) || empty($_POST['temat']) || empty($_POST['tresc']))
  3. {    
  4. echo "Nie uzupełniłeś wszystkich rubryk.";
  5. echo "<br>";
  6. echo "<a href='java script:history.go(-1)'>wróć</a>";
  7.  
  8. exit;  
  9. }
  10.  
  11. $wiadomosc =
  12. "Imie: ".$_POST['nick']."
  13. Nazwisko: ".$_POST['nazw']."
  14. Ulica: ".$_POST['ulica']."
  15. Kod pocztowy: ".$_POST['kod']."
  16. Miasto: ".$_POST['miasto']."
  17. Temat: ".$_POST['temat']."
  18. Telefon: ".$_POST['telefon']."
  19. E- mail: ".$_POST['mail']."
  20. Tresc: ".$_POST['tresc']."  ";
  21. $tematyka = "kontakt".$temat;
  22. mail ("email@email.pl", $tematyka, $wiadomosc );
  23. echo "Dziekujemy za wysłanie do nas maila,";
  24. ?>
Go to the top of the page
+Quote Post
Rafal Filipek
post 3.01.2009, 22:39:53
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


to
Kod
if (empty($_POST['nick']) || empty($_POST['nazw']) || empty($_POST['ulica']) || empty($_POST['kod']) || empty($_POST['miasto']) || empty($_POST['telefon']) || empty($_POST['mail']) || empty($_POST['temat']) || empty($_POST['tresc']))
{    
echo "Nie uzupełniłeś wszystkich rubryk.";
echo "<br>";
echo "<a href='javascript:history.go(-1)'>wróć</a>";

exit;  
}

wstaw po
Kod
if ($_POST["wyslij"]==1)
{


a to :
Kod
$wiadomosc =
"Imie: ".$_POST['nick']."
Nazwisko: ".$_POST['nazw']."
Ulica: ".$_POST['ulica']."
Kod pocztowy: ".$_POST['kod']."
Miasto: ".$_POST['miasto']."
Temat: ".$_POST['temat']."
Telefon: ".$_POST['telefon']."
E- mail: ".$_POST['mail']."
Tresc: ".$_POST['tresc']."  ";
$tematyka = "kontakt".$temat;
mail ("email@email.pl", $tematyka, $wiadomosc );
echo "Dziekujemy za wysłanie do nas maila,";

zamiast
Kod
$tresclistu = "tutaj piszesz całą treść maila";
Go to the top of the page
+Quote Post
dave666
post 3.01.2009, 22:43:17
Post #3





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 1.04.2008

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


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

błąd
Warning: mail() expects at most 5 parameters, 6 given in /wyslij.php on line 67
E-mail NIE został wysłany poprawnie.
Prosimy o powrót i wysłanie e-maila ponownie.
a jak usune to ,$tematyka,$wiadomosc to nie pokazuje mi tresci wiadomosci

Ten post edytował dave666 3.01.2009, 22:52:14
Go to the top of the page
+Quote Post
Rafal Filipek
post 3.01.2009, 22:52:03
Post #4





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

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


Masz za dużo parametrów dla funkcji mail co jasno wynika z błędu. Nie będę analizował twojego kodu, żeby sprawdzić co która zmienna przechowuje. zobacz jakie i w jakiej kolejnosci argumenty przyjmuje funkcja mail to poustawiaj wszystko ( dokumentacja ).

Na przyszłość dodam tylko że faktycznie istnieje coś takiego jak array_merge ale z tego co wiem nie ma czegos takiego jak metoda merdżowania argumentów funkcji ( dodatkowo z 2 róznych plików ;] )

Ten post edytował Rafal Filipek 3.01.2009, 22:54:42
Go to the top of the page
+Quote Post
dave666
post 3.01.2009, 23:26:03
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 1.04.2008

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


WIem ze chcieliście pomóc ale ja nie rozumiem za bardzo co do mnie kolega Rafał pisze choć bardzo chciałbym to zrozumieć mimo wszystko dzięki za pomoc jak kiedyś dojde do rozwiazania to umieszcze gotowy skrypt
Go to the top of the page
+Quote Post
obelix94
post 3.01.2009, 23:33:47
Post #6





Grupa: Nieautoryzowani
Postów: 141
Pomógł: 0
Dołączył: 30.09.2008
Skąd: Gdańsk

Ostrzeżenie: (20%)
X----


Jak nie rozumiesz to poczytaj sobie trochę manuala php i link jaki podal ci @Rafal Filipek


--------------------
Zawieszony w pisaniu przez @mike - pisze na PW. <?php echo !$lubie.'moderatorow' ?>
Jak to czytasz, to współczuj mi. Przebolewam za swe grzechy...
Współczujcie...
Gdzie to współczucie?
Go to the top of the page
+Quote Post
dave666
post 3.01.2009, 23:35:55
Post #7





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 1.04.2008

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


Spoko problem rozwiązałem zaraz napisze rozwiazanie smile.gif

o to rozwiązanie zamiast funkcji (empty($_POST['nick']) po prostu zrobiłem tak i działa elegancko wysyła załacznik i treść wiecej pól sami sobie dopiszecie
plik wyslij.php
  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 np: kontakt.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>


Ten post edytował dave666 3.01.2009, 23:45:53
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: 18.07.2025 - 03:30