Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z formularzem wysyłanie plików
Forum PHP.pl > Forum > Przedszkole
lumikspl
Witam mam takowy problem chce stworzyć formularz kontaktowy do mojej strony który ma mi wysyłać dane na maila, formularz mi działa 75% gdyż wysyła dane ale nie chce wysłać pliku i zamiast pliku to dostaje na maila ścieżkę dostępu pliku mam utworzony katalog na serwerze up z chmodami 777 jak by mógł by mi ktoś pomóc będę wdzięczny skrypty z których korzystam znalazłem w internecie i z nich korzystam niby miało działać lecz nie działa, dane w formularzu są tylko danymi testowymi wiec się nie sugerujcie nimi

  1. <html>
  2. <head>
  3. <meta charset="utf-8"/>
  4. </head> <body>
  5. <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
  6. Imię : <input type="text" name="Imie" /><br>
  7. Twój wiek :<input type="text" name="Wiek" /><br>
  8. Email do ciebie: <input type="text" name="E-mail" /><br>
  9. Tel do ciebie : <input type="text" name="Tel" /><br>
  10. <p>pytanie?</p>
  11. <input type="checkbox" name="1" value="1" />1<br />
  12. <input type="checkbox" name="2" value="2" />2<br />
  13. <input type="checkbox" name="3" value="3" />3<br />
  14. <input type="checkbox" name="4" value="4" />4<br />
  15. <input type="checkbox" name="5" value="5" />5<br />
  16. <input type="checkbox" name="6" value="Inna" />Inna (podaj jaka):
  17. <input name="Film" /><br>
  18.  
  19. <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxfilesize; ?>">
  20. <input type="file" name="userfile">
  21. <input type="submit" name="send" value="Wyślij plik">
  22. </form>
  23.  
  24.  
  25.  
  26. </body>
  27. </html>
  28. <?php
  29.  
  30. function sprawdz_bledy()
  31. {
  32. if ($_FILES['obrazek']['error'] > 0)
  33. {
  34. echo 'problem: ';
  35. switch ($_FILES['obrazek']['error'])
  36. {
  37. // jest większy niż domyślny maksymalny rozmiar,
  38. // podany w pliku konfiguracyjnym
  39. case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;}
  40.  
  41. // jest większy niż wartość pola formularza
  42. // MAX_FILE_SIZE
  43. case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;}
  44.  
  45. // plik nie został wysłany w całości
  46. case 3: {echo 'Plik wysłany tylko częściowo.'; break;}
  47.  
  48. // plik nie został wysłany
  49. case 4: {echo 'Nie wysłano żadnego pliku.'; break;}
  50.  
  51. // pozostałe błędy
  52. default: {echo 'Wystąpił błąd podczas wysyłania.';
  53. break;}
  54. }
  55. return false;
  56. }
  57. return true;
  58. }
  59.  
  60. ?>
  61. <?php
  62.  
  63. function sprawdz_typ()
  64. {
  65. if ($_FILES['obrazek']['type'] != 'image/jpeg')
  66. return false;
  67. return true;
  68. }
  69.  
  70. ?>
  71. <?php
  72.  
  73. function zapisz_plik()
  74. {
  75. $lokalizacja = './up/plik_obrazkowy.jpg';
  76.  
  77. if(is_uploaded_file($_FILES['obrazek']['tmp_name']))
  78. {
  79. if(!move_uploaded_file($_FILES['obrazek']['tmp_name'], $lokalizacja))
  80. {
  81. echo 'problem: Nie udało się skopiować pliku do katalogu.';
  82. return false;
  83. }
  84. }
  85. else
  86. {
  87. echo 'problem: Możliwy atak podczas przesyłania pliku.';
  88. echo 'Plik nie został zapisany.';
  89. return false;
  90. }
  91. return true;
  92. }
  93.  
  94. ?>
  95.  
  96. <?php
  97. if (count($_POST)) {////////// USTAWIENIA //////////
  98. $email = 'praca@mag-mma.pl'; // Adres e-mail adresata
  99. $subject = 'temat'; // Temat listu
  100. $message = 'Dziękujemy za wysłanie formularza'; // Komunikat
  101. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu $charset = 'iso-8859-2'; // Strona kodowa
  102. //////////////////////////////
  103.  
  104. $headers = "From: ExRobot <robot@example.com>\r\n";
  105. $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=utf-8\r\n";
  106. $headers .= "Content-Transfer-Encoding: 8bit";
  107.  
  108.  
  109. $body = ''; foreach ($_POST as $name => $value) {
  110. if (is_array($value)) {
  111. for ($i = 0; $i < count($value); $i++) {
  112. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  113. } }
  114. else
  115. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  116. }
  117. echo mail($email, "=?utf-8?B?" . base64_encode($subject) . "?=", $body, $headers) ? $message : $error;}
  118. ?><?php
  119. $upload_dir = '.';
  120. $maxfilesize = 102400;
  121.  
  122. $send = $HTTP_POST_VARS['send'];
  123. $userfile = $HTTP_POST_FILES['userfile'];
  124. $phpself = $HTTP_SERVER_VARS['PHP_SELF'];
  125.  
  126. if(isset($send)) {
  127.  
  128. if(is_uploaded_file($userfile['tmp_name'])) {
  129.  
  130. if($userfile['size'] <= $maxfilesize) {
  131.  
  132. if(move_uploaded_file($userfile['tmp_name'],
  133. $upload_dir.'up/'.$userfile['name']))
  134. echo '<p>Plik został wysłany</p>';
  135.  
  136. }
  137. }
  138. }
  139. ?>
jakis_login
Do załączania plików w meilu polecam skorzystać z phpmailer'a. Tu masz przykład.
lumikspl
można łopatologicznie o tym coś
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.