Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Formularz z dodawaniem pliku
Forum PHP.pl > Forum > Przedszkole
Snake11
Tak, przyznają się otwarcie - z PHP raczkuję, ale ambitnie staram się walczyćwink.gif.
Teraz próbuję zrobić formularz PHP umożliwiający wysyłanie załącznika.
Generalnie na podany adres ma przychodzić mail z treścią wypełnionych pól i z plikiem graficznym załącznika. Udało mi się dodać do formularza przycisk umożliwiający dodanie załącznika, ale na maila załącznik nie dochodzi, a zamiast tego dochodzi... nazwa tego załącznika wraz z rozszerzeniem biggrin.gif.

Oto skrypt, z którego korzystam:

  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<table border=\"0\">
  6. <form method=\"post\">
  7. <tr>
  8. <td>Treść wiadomości</td>
  9. <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
  10. </tr>
  11. <tr>
  12. <td>Imię, nazwisko lub nick</td>
  13. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  14. </tr>
  15. <tr>
  16. <td>Załącz plik</td>
  17. <td><input type=\"file\" name=\"zalacznik\" style\"widt: 250px\"></td>
  18. </tr>
  19.  
  20. <tr>
  21. <td>Adres e-mail</td>
  22. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  23. </tr>
  24. <tr>
  25. <td>Kopia do nadawcy</td>
  26. <td> <input type='checkbox' value='1' name='bbc' /> </td>
  27. </tr>
  28. <tr>
  29. <td>&nbsp;</td>
  30. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  31. <input type=\"reset\" value=\"Od nowa\"></td>
  32. </tr>
  33. </form>
  34. </table>";
  35. }
  36. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  37. elseif ( !empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email']) ) {
  38. $message = "Treść wiadomości:\n" . $_POST['tresc'] . "\nWysłał: " . $_POST['imie'] . "\nZałącznik: " . $_POST['zalacznik'] . "\ne-mail: " . $_POST['email'];
  39. $header = "From: " . $_POST['imie'] . "<" . $_POST['email'] . ">";
  40.  
  41. if ( !empty( $_POST['bbc'] )) {
  42. $header .= "\nBcc: " . $_POST['imie'] . "<" . $_POST['email'] .">";
  43. }
  44. /*
  45. echo "<pre>";
  46. print_r($_POST);
  47. echo "</pre>";
  48.   die; */
  49.  
  50. @mail( "mojmail@mail", "Wiadomosc ze strony", $message, $header )
  51. or die('Nie udało się wysłać wiadomości');
  52. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  53. }
  54. else
  55. echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  56. ?>


Co robię źle moi drodzy?
ctom
to Ci pomoże http://elpredatoro.org/2013/01/16/dolaczan...li-w-phpmailer/
Snake11
A nie ma prostszej metody?
Czy to właśnie tego, co opisuje tamten artykuł, brakuje w moim kodzie?
Turson
PHPMailer to łatwa metoda. Ściągasz bibliotekę, dajesz jakieś require/include w pliku, a dalej podajesz do kogo wysłać, jaki załącznik i wsio.
Snake11
Cytat(Turson @ 2.03.2014, 15:59:15 ) *
PHPMailer to łatwa metoda. Ściągasz bibliotekę, dajesz jakieś require/include w pliku, a dalej podajesz do kogo wysłać, jaki załącznik i wsio.


Turson, zapoznałem się z Twoim gotowcem formularza w php. Czy w nim jest możliwość dodania kodu odpowiedzialnego za wczytanie załącznika?
Drążę temat, bo próbowałem z phpmailerem, ale niestety nie udało mi się na jego podstawie zbudować pól formularza.
nospor
Zeby formem wyslac zalacznik, trzeba odpowiednio przygotowac formularz i odpowiednio odebrac dane z formularza
Tutaj
http://pl1.php.net/manual/en/features.file...post-method.php
masz wszystko opisane i podane na przykladzie
Turson
Cytat(Snake11 @ 3.03.2014, 09:57:47 ) *
Turson, zapoznałem się z Twoim gotowcem formularza w php. Czy w nim jest możliwość dodania kodu odpowiedzialnego za wczytanie załącznika?

Tak bezpośrednio to nie. Nospor podał odpowiedź.

Cytat(Snake11 @ 3.03.2014, 09:57:47 ) *
Drążę temat, bo próbowałem z phpmailerem, ale niestety nie udało mi się na jego podstawie zbudować pól formularza.

PHPMailer nie wymaga innych pól formularza, więc nie wiem jaki to ma związek.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.