Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Plik nie wysyła się z formularza
Forum PHP.pl > Forum > Przedszkole
rychu54
Cześć. Stworzyłem formularz w oparciu o php. Wszystko fajnie mi działa tylko mam problem z załadowanie pliku na serwer i aby wysyłał on się na email. Próbowałem już masę razy testować różne kody z internetu i nic. Gdyby ktoś chciał mi pomóc to załączam link do paczki z plikami. Będę bardzo wdzięczny za pomoc!
Paczka formularza
Generalnie problem jest chyba po stronie kodu w pliku send.php w linijce od 67
  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. if (!isset($_POST['contact_phone']) || empty($_POST['contact_phone'])) {
  17. $error = true;
  18. }
  19.  
  20.  
  21. if (!isset($_POST['contact_dat']) || empty($_POST['contact_dat'])) {
  22. $error = true;
  23. }
  24.  
  25. if (!isset($_POST['contact_city']) || empty($_POST['contact_city'])) {
  26. $error = true;
  27. }
  28.  
  29. if (!isset($_POST['contact_language']) || empty($_POST['contact_language'])) {
  30. $error = true;
  31. }
  32.  
  33. if (!isset($_POST['contact_height']) || empty($_POST['contact_height'])) {
  34. $error = true;
  35. }
  36. if (!isset($_POST['contact_bust']) || empty($_POST['contact_bust'])) {
  37. $error = true;
  38. }
  39. if (!isset($_POST['contact_waist']) || empty($_POST['contact_waist'])) {
  40. $error = true;
  41. }
  42.  
  43. if (!isset($_POST['contact_loins']) || empty($_POST['contact_loins'])) {
  44. $error = true;
  45. }
  46.  
  47. if (!isset($_POST['contact_clothes']) || empty($_POST['contact_clothes'])) {
  48. $error = true;
  49. }
  50.  
  51. if (!isset($_POST['contact_boots']) || empty($_POST['contact_boots'])) {
  52. $error = true;
  53. }
  54.  
  55. if (!isset($_POST['contact_eyes']) || empty($_POST['contact_eyes'])) {
  56. $error = true;
  57. }
  58.  
  59. if (!isset($_POST['contact_hair']) || empty($_POST['contact_hair'])) {
  60. $error = true;
  61. }
  62.  
  63.  
  64. if (!isset($_POST['contact_experience']) || empty($_POST['contact_experience'])) {
  65. $error = true;
  66. }
  67. $plik_tmp = $_FILES['plik']['tmp_name'];
  68. $plik_nazwa = $_FILES['plik']['name'];
  69. $plik_rozmiar = $_FILES['plik']['size'];
  70.  
  71. if(is_uploaded_file($plik_tmp)) {
  72. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  73. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  74. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  75. }
  76. if (!isset($_FILES['plik']) || empty($_FILES['plik'])) {
  77. $error = true;
  78. }
  79.  
  80. if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
  81. $error = true;
  82. }
  83.  
  84. 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])) {
  85. $error = true;
  86. }
  87.  
  88. if ($error) {
  89. exit('nok');
  90. }
  91.  
  92. $mail = new PHPMailer();
  93.  
  94. $mail->CharSet = 'UTF-8';
  95.  
  96. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  97. $mail->AddAddress('exampe@gmail.com');
  98. $mail->Subject = 'Wiadomość ze strony internetowej';
  99. $mail->Body = $_POST['contact_body'] . "\n\nImię i Nazwisko: " . $_POST['contact_name'] . "\n\nE-mail: " . $_POST['contact_email'] . "\n\nTelefon: " . $_POST['contact_phone'] . "\n\nData urodzenia: " . $_POST['contact_dat'] . "\n\nMiasto zamieszkania: " . $_POST['contact_city'] . "\n\nJęzyki: " . $_POST['contact_language'] . "\n\nWzrost: " . $_POST['contact_height'] . "\n\nBiust/Klatka piersiowa: " . $_POST['contact_bust'] . "\n\nTalia: " . $_POST['contact_waist'] . "\n\nBiodra: " . $_POST['contact_loins'] . "\n\nRozmiar ubrań: " . $_POST['contact_clothes'] . "\n\nRozmiar buta: " . $_POST['contact_boots'] . "\n\nKolor oczu: " . $_POST['contact_eyes'] . "\n\nKolor włosów: " . $_POST['contact_hair'] . "\n\nDoświadczenie: " . $_POST['contact_experience'] . "\n\nPliki: " . $_FILES['plik'];
  100. if (!$mail->Send()) {
  101. exit('nok');
  102. }
  103.  
  104. exit('ok');
timon27
Na pierwszy rzut oka wygląda wporzo.
Czy kod działa poprawnie (oprócz załącznika)?
Jeśli tak to dodaj tylko:
  1. $mail->AddAttachment($plik_nazwa, $plik_nazwa);

w 95 linijce.


Dodatkowo:
plik na serwerze nazywasz identycznie jak nazywa się na komputerze użytkownika.
Jest to błąd.
Zdecydowana większość użytkowników ma mnóstwo plików z polskimi znakami.
Zdecydowana większość serwerów nie obsługuje plików z polskimi znakami.
Radzę tuż po 68 linijce usunąć ci z $nazwa_pliku polskie litery.
rychu54
Właśnie kod działa poprawnie wszystkie pola się wysyłają tylko nie plik. Zaraz dodam kod i zobaczymy.

Mmmm. Kod jednak nie działa poprawnie nie wiem czemu, coś się posypało.
Formularz można zobaczyć tu:
Formualarz

Posługiwałem się tym:
http://www.kess.snug.pl/?sid=10&pid=38 i folder upload ustawiłem na 777.
Pyton_000
To co Ci w końcu nie działa?
rychu54
Teraz już sam nie wiem, Najpierw nie działał tylko upload plików a teraz jak chce wysłać formularz razem z innymi polami to nie działa, wywala błąd.
Pyton_000
a co mówi
Kod
var_dump($_FILES);
rychu54
Cytat(Pyton_000 @ 20.12.2013, 22:26:57 ) *
a co mówi
Kod
var_dump($_FILES);

A gdzie mam to sprawdzić?
Pyton_000
gdziekolwiek nawet na początku pliku
rychu54
Czyli mam to dodać do pliku send.php i co dalej?
Jeszcze raz wrzucam to co najważniejsze:
  1. <form action="form/send.php" method="post" id="contactform" enctype="multipart/form-data">
  2. <input type="text" name="contact_name" placeholder="Imię i nazwisko" required="required" tabindex="1" />
  3. <input type="email" name="contact_email" placeholder="Adres e-mail" required="required" tabindex="2" />
  4. <input type="tel" name="contact_phone" placeholder="Telefon" required="required" tabindex="3" />
  5. <input type="date" name="contact_dat" placeholder="Data urodzenia" required="required" tabindex="4" />
  6. <input type="text" name="contact_city" placeholder="Miasto zamieszkania" required="required" tabindex="5" />
  7.  
  8.  
  9. <select name="contact_language" required="required" tabindex="6">
  10. <option value="Angielski">Znajomość jęzków</option>
  11. <option value="Angielski">Angielski</option>
  12. <option value="Niemiecki">Niemiecki</option>
  13. <option value="Rosyjski">Rosyjski</option>
  14. <option value="Francuski">Francuski</option>
  15. <option value="Grecki">Grecki</option>
  16. <option value="Włoski">Włoski</option>
  17. <option value="Hiszpański">Hiszpański</option>
  18. </select>
  19.  
  20. <input type="text" name="contact_height" placeholder="Wzrost" required="required" tabindex="7" />
  21. <input type="text" name="contact_bust" placeholder="Biust/Klatka piersiowa" required="required" tabindex="8" />
  22. <input type="text" name="contact_waist" placeholder="Talia" required="required" tabindex="9" />
  23. <input type="text" name="contact_loins" placeholder="Biodra" required="required" tabindex="10" />
  24. <input type="text" name="contact_clothes" placeholder="Rozmiar ubrań" required="required" tabindex="11" />
  25. <input type="text" name="contact_boots" placeholder="Numer buta" required="required" tabindex="12" />
  26. <input type="text" name="contact_eyes" placeholder="Kolor oczu" required="required" tabindex="13" />
  27. <input type="text" name="contact_hair" placeholder="Kolor włosów" required="required" tabindex="14" />
  28. <input type="file" name="plik" placeholder="Załącz pliki" multiple="multiple" required="required" tabindex="15" />
  29.  
  30.  
  31. <textarea rows="5" columns="10" name="contact_experience" placeholder="Doświadczenie" required="required" tabindex="16"></textarea>
  32. <textarea rows="5" columns="10" name="contact_body" placeholder="Treść wiadomości" required="required" tabindex="17"></textarea>
  33. <input type="submit" value="Wyślij" tabindex="19" />Podaj wynik: <span class="form_check_1"></span> &times; <span class="form_check_2"></span> = <input type="text" name="contact_check" maxlength="2" tabindex="18" />
  34. <input type="hidden" name="contact_check_data" value="" />
  35. </form>


  1. <?php
  2. var_dump($_FILES);
  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. if (!isset($_POST['contact_phone']) || empty($_POST['contact_phone'])) {
  17. $error = true;
  18. }
  19.  
  20.  
  21. if (!isset($_POST['contact_dat']) || empty($_POST['contact_dat'])) {
  22. $error = true;
  23. }
  24.  
  25. if (!isset($_POST['contact_city']) || empty($_POST['contact_city'])) {
  26. $error = true;
  27. }
  28.  
  29. if (!isset($_POST['contact_language']) || empty($_POST['contact_language'])) {
  30. $error = true;
  31. }
  32.  
  33. if (!isset($_POST['contact_height']) || empty($_POST['contact_height'])) {
  34. $error = true;
  35. }
  36. if (!isset($_POST['contact_bust']) || empty($_POST['contact_bust'])) {
  37. $error = true;
  38. }
  39. if (!isset($_POST['contact_waist']) || empty($_POST['contact_waist'])) {
  40. $error = true;
  41. }
  42.  
  43. if (!isset($_POST['contact_loins']) || empty($_POST['contact_loins'])) {
  44. $error = true;
  45. }
  46.  
  47. if (!isset($_POST['contact_clothes']) || empty($_POST['contact_clothes'])) {
  48. $error = true;
  49. }
  50.  
  51. if (!isset($_POST['contact_boots']) || empty($_POST['contact_boots'])) {
  52. $error = true;
  53. }
  54.  
  55. if (!isset($_POST['contact_eyes']) || empty($_POST['contact_eyes'])) {
  56. $error = true;
  57. }
  58.  
  59. if (!isset($_POST['contact_hair']) || empty($_POST['contact_hair'])) {
  60. $error = true;
  61. }
  62.  
  63.  
  64. if (!isset($_POST['contact_experience']) || empty($_POST['contact_experience'])) {
  65. $error = true;
  66. }
  67. $plik_tmp = $_FILES['plik']['tmp_name'];
  68. $plik_nazwa = $_FILES['plik']['name'];
  69. $plik_rozmiar = $_FILES['plik']['size'];
  70.  
  71. if(is_uploaded_file($plik_tmp)) {
  72. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  73. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  74. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  75. }
  76. if (!isset($_FILES['plik']) || empty($_FILES['plik'])) {
  77. $error = true;
  78. }
  79.  
  80. if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
  81. $error = true;
  82. }
  83.  
  84. 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])) {
  85. $error = true;
  86. }
  87.  
  88. if ($error) {
  89. exit('nok');
  90. }
  91.  
  92. $mail = new PHPMailer();
  93.  
  94. $mail->CharSet = 'UTF-8';
  95.  
  96. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  97. $mail->AddAddress('k.switala411@gmail.com');
  98. $mail->Subject = 'Wiadomość ze strony internetowej';
  99. $mail->Body = $_POST['contact_body'] . "\n\nImię i Nazwisko: " . $_POST['contact_name'] . "\n\nE-mail: " . $_POST['contact_email'] . "\n\nTelefon: " . $_POST['contact_phone'] . "\n\nData urodzenia: " . $_POST['contact_dat'] . "\n\nMiasto zamieszkania: " . $_POST['contact_city'] . "\n\nJęzyki: " . $_POST['contact_language'] . "\n\nWzrost: " . $_POST['contact_height'] . "\n\nBiust/Klatka piersiowa: " . $_POST['contact_bust'] . "\n\nTalia: " . $_POST['contact_waist'] . "\n\nBiodra: " . $_POST['contact_loins'] . "\n\nRozmiar ubrań: " . $_POST['contact_clothes'] . "\n\nRozmiar buta: " . $_POST['contact_boots'] . "\n\nKolor oczu: " . $_POST['contact_eyes'] . "\n\nKolor włosów: " . $_POST['contact_hair'] . "\n\nDoświadczenie: " . $_POST['contact_experience'] . "\n\nPliki: " . $_FILES['plik'];
  100. if (!$mail->Send()) {
  101. exit('nok');
  102. }
  103.  
  104. exit('ok');
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.