Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Nie wyświetlają się załączniki z formularza
rychu54
post 29.12.2013, 22:47:31
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Witam! Mam stworzony formularz w php, który działa i wysyła dane na email jednak problem w tym, że w formularzu jest opcja załączenia pliku po czy gdy nastapi wysłanie danych z formularza to na poczcie np. gmail nie widać załącznika.
Kod:
  1. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
  2.  
  3. <form action="form/send.php" method="post" id="contactform" enctype="multipart/form-data">
  4. <input type="text" name="contact_name" placeholder="Imię i nazwisko" required="required" tabindex="1" />
  5. <input type="email" name="contact_email" placeholder="Adres e-mail" required="required" tabindex="2" />
  6. <input type="file" name="plik" placeholder="Załącz pliki" multiple="multiple" required="required" tabindex="" />
  7. <textarea rows="5" columns="10" name="contact_body" placeholder="Treść wiadomości" required="required" tabindex="3"></textarea>
  8. <input type="submit" value="Wyślij" tabindex="5" />Podaj wynik: <span class="form_check_1"></span> &times; <span class="form_check_2"></span> = <input type="text" name="contact_check" maxlength="2" tabindex="4" />
  9. <input type="hidden" name="contact_check_data" value="" />
  10. </form>

send.php
  1. <?php
  2.  
  3. require_once 'class.phpmailer.php';
  4.  
  5. $_POST = array_map('trim', $_POST);
  6.  
  7. $error = false;
  8.  
  9. if (!isset($_POST['contact_name']) || empty($_POST['contact_name'])) {
  10. $error = true;
  11. }
  12.  
  13. if (!isset($_POST['contact_email']) || empty($_POST['contact_email']) || !PHPMailer::ValidateAddress($_POST['contact_email'])) {
  14. $error = true;
  15. }
  16.  
  17. if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
  18. $error = true;
  19. }
  20.  
  21. if (!isset($_POST['contact_check']) || empty($_POST['contact_check']) || (int) $_POST['contact_check'] !== ((int) $_POST['contact_check_data'][0] * (int) $_POST['contact_check_data'][1])) {
  22. $error = true;
  23. }
  24.  
  25. if ($error) {
  26. exit('nok');
  27. }
  28.  
  29.  
  30.  
  31. $mail = new PHPMailer();
  32. if($_FILES['plik']['error'] == UPLOAD_ERR_OK)
  33. $mail->addAttachment($_FILES['plik']['tmp_name'], $_FILES['plik']['name']);
  34. $mail->CharSet = 'UTF-8';
  35.  
  36. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  37. $mail->AddAddress('example@gmail.com');
  38. $mail->Subject = 'Wiadomość ze strony internetowej';
  39. $mail->Body = $_POST['contact_body'] . "\n\n" . $_FILES['plik']['name'];
  40.  
  41. if (!$mail->Send()) {
  42. exit('nok');
  43. }
  44.  
  45. exit('ok');
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
kristaps
post 29.12.2013, 22:59:49
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


  1. [...]
  2.  
  3. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  4. $mail->AddAddress('example@gmail.com');
  5. $mail->Subject = 'Wiadomość ze strony internetowej';
  6. $mail->Body = $_POST['contact_body'] . "\n\n" . $_FILES['plik']['name'];
  7.  
  8. if (!$mail->Send()) {
  9. exit('nok');
  10. }
  11.  
  12. exit('ok');


Dlaczego dodajesz załącznik do Body? $mail->AddAttachment z tego co pamiętam.

Ten post edytował kristaps 29.12.2013, 23:00:54
Go to the top of the page
+Quote Post
rychu54
post 29.12.2013, 23:12:01
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Czyli jak mam to przeprawić?
Go to the top of the page
+Quote Post
kristaps
post 29.12.2013, 23:22:53
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Przecież wszystko Ci napisałem. Wygoogluje za Ciebie:
  1. $mail->AddAttachment("./plik.zip", "nowa_nazwa.zip");
  2.  
  3. // Gdzie "./plik.zip" to ścieżka do pliku, który chcemy wysłać a "nowa_nazwa.zip" to nowa nazwa pliku

a z $mail->Body wywal ten załącznik.

Ten post edytował kristaps 29.12.2013, 23:24:14
Go to the top of the page
+Quote Post
rychu54
post 29.12.2013, 23:26:36
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Zrobiłem tak:
  1. [...]
  2.  
  3. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  4. $mail->AddAddress('example@gmail.com');
  5. $mail->Subject = 'Wiadomość ze strony internetowej';
  6. $mail->Body = $_POST['contact_body'];
  7. $mail->AddAttachment("./plik.zip", "nowa_nazwa.zip");
  8.  
  9. if (!$mail->Send()) {
  10. exit('nok');
  11. }
  12.  
  13. exit('ok');
Go to the top of the page
+Quote Post
kristaps
post 29.12.2013, 23:30:58
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


No tak, ale zamiast "./plik.zip" daj $_FILES['plik']['name'].
Go to the top of the page
+Quote Post
rychu54
post 29.12.2013, 23:42:03
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Dalej nie wyświetla załącznika na gmailu. Tutaj mam spakowany formularz: http://www.sendspace.pl/file/136b5437303decbb0f7e0f8 może przetestujesz u siebie?


Ten post edytował rychu54 29.12.2013, 23:42:22
Go to the top of the page
+Quote Post
kristaps
post 30.12.2013, 00:01:59
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 36
Dołączył: 1.03.2012

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


Sprawdź czy $files w ogóle coś zawiera. Ewentualnie ustaw ścieżkę na sztywno i zobacz, czy wtedy dojdzie wiadomość z załącznikiem, jeśli tak pokombinuj z $_FILES['plik']['name'], $_FILES['plik']['tmp_name'].

Edit: Teraz zauważyłem i potwierdziło się to co napisałem wyżej:

  1. $mail = new PHPMailer();
  2. if($_FILES['plik']['error'] == UPLOAD_ERR_OK)
  3. $mail->addAttachment($_FILES['plik']['tmp_name'], $_FILES['plik']['name']);


Ten post edytował kristaps 30.12.2013, 00:06:59
Go to the top of the page
+Quote Post
rychu54
post 3.01.2014, 15:22:41
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Nie mam pojęcia. Jestem początkujący w php i nie rozumiem go jeszcze w pełni.

To jak mam to poprawić?

@kristaps Pomożesz jeszcze?
Go to the top of the page
+Quote Post
Turson
post 3.01.2014, 16:47:34
Post #10





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. print_r($_FILES);
Go to the top of the page
+Quote Post
rychu54
post 3.01.2014, 21:57:58
Post #11





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Gdzie mam to dodać?
Go to the top of the page
+Quote Post
Turson
post 3.01.2014, 21:59:29
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Przed wysłaniem maila
  1. print_r($_FILES);
Go to the top of the page
+Quote Post
rychu54
post 3.01.2014, 22:03:25
Post #13





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Tzn w której linijce kodu?
Go to the top of the page
+Quote Post
Turson
post 3.01.2014, 22:05:11
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Rozbrajasz mnie, nie wiesz gdzie wyprintować tablicę a bierzesz się za maile ohmy.gif
np w 2.
Go to the top of the page
+Quote Post
rychu54
post 3.01.2014, 22:07:44
Post #15





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


No dobrze, jak dodam ten kod od ciebie do formularza z paczki to będzie działać?
Go to the top of the page
+Quote Post
Turson
post 3.01.2014, 22:09:03
Post #16





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Po prostu wklej to tam, a rezultat, który wyświetli się na stronie wklej na forum
Go to the top of the page
+Quote Post
rychu54
post 3.01.2014, 22:11:10
Post #17





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


Formularz wywala błąd.
Go to the top of the page
+Quote Post
rad11
post 3.01.2014, 22:18:55
Post #18





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


"formularz wywala blad" otrzymujesz na stronie?
Go to the top of the page
+Quote Post
rychu54
post 3.01.2014, 22:22:39
Post #19





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 20.12.2013

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


http://www.fotosik.pl/pokaz_obrazek/e890172e44256454.html#
P.S cały formularz jest ogólnie stąd: http://grafmag.pl/artykuly/tworzymy-wlasny...arz-kontaktowy/

Ten post edytował rychu54 3.01.2014, 22:23:37
Go to the top of the page
+Quote Post
rad11
post 3.01.2014, 22:28:31
Post #20





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


A dodales do kodu tak jak prosil Turson ?

Ten post edytował rad11 3.01.2014, 22:28:53
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.08.2025 - 10:25