Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakis problem z wysyłaniem załącznika
Forum PHP.pl > Forum > Przedszkole
Gugsen
Witam,

Mam problem z załącznikiem do formularza w PHP.

Kiedy wysyłam formularz bez załącznika wszystko ok, ładnie w HTML dochodzi.

Kiedy zaś wysyłam z załącznikiem, po kliknieciu na "Wyślij" pokazuje mi sie pusta biała strona.

Musze dodać, że w PHP programuję od 2 miesięcy, więc może popełniłem jakiś błąd laika.

Oryginał testowy: http://gugsen.ddl2.pl/aktor/aktor.php

Oto kody:

aktor.php - odpowiadający za wyslanie pliku - czesc kodu:

  1. <?php
  2. <input type="hidden" name="wyslij" value="1" />
  3. <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
  4. <input type="file" size="25" name="plik"></td>
  5. ?>


wykonanie.php - nie trzeba tlumaczyć tongue.gif

  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  4. </head>
  5.  
  6. <?php
  7.  
  8. // zdefiniowanie krótkich nazw zmiennych
  9. tutaj zeby chidzlo bez register globals, musialem wyciac 
  10. $plik = $_POST['plik'];
  11.  
  12.  
  13. $error = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Aby wysłać wiadomość musisz wypełnić wszystkie wymagane pola!<br>Prosimy o <a href=\"javascript:history.back();\">powrót do</a> formularza!";
  14. $fatal_error = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Niestety formularz nie został wysłany poprawnie!<br>Prosimy o <a href=\"javascript:history.back();\">powrót do</a> formularza!";
  15. $submit_ok = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Wiadomość wysłana poprawnie!<br>Jeśli chcesz, <a href=\"javascript:history.back();\">wróć do</a> formularza!";
  16. $error_akceptacja = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Aby wysłac zgłoszenie musisz zaakceptować warunki!<br>Jeśli chcesz, <a href=\"javascript:history.back();\">wróć do</a> formularza!";
  17. $erroremail = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Aby wysłac zgłoszenie musisz wpisać poprawny adres e-mail!<br>Jeśli chcesz, <a href=\"javascript:history.back();\">wróć do</a> formularza!";
  18.  
  19. if ($akceptacja == "") {
  20. echo $error_akceptacja;
  21.  }
  22. //sprawdzenie czy załącznik pochodzi z formularza
  23. if ($_POST["wyslij"]==1)
  24. {
  25. srand((double)microtime()*1000000);
  26. $znacznik = md5(uniqid(rand()));
  27.  
  28. // dane o odbiorcy, nadawcy
  29. $odbiorca="a@a.pl";
  30. $tytul=" Formularz;
  31. $nadawca = "Formularz";
  32. $nadawca_mail="mail-ze-strony@domena.pl";
  33.  
  34. // treść listu
  35. $tresclistu = "
  36. <html>
  37. <head>
  38. <meta content=text/html; charset=ISO-8859-2 http-equiv=content-type>
  39. </head>
  40. <style type=text/css>
  41.  
  42. td {
  43.  
  44. font-face: verdana;
  45. font-size: 10px;
  46.  
  47. }
  48. </style>
  49.  
  50. tutaj cale dane forma
  51.  
  52. // definicja nagłówków
  53. $naglowki = "From: $nadawca <$nadawca_mail>\n";
  54. $naglowki .= "MIME-Version: 1.0\n";
  55. $naglowki .= "Content-Type: multipart/mixed;\n";
  56. $naglowki .= "\tboundary=\"___$znacznik==\"";
  57.  
  58. // nagłówki listu
  59. $tresc="--___$znacznik==\n";
  60. $tresc .="Content-Type: text/html; charset=\"iso-8859-2\"\n";
  61. $tresc .="Content-Transfer-Encoding: 8bit\n";
  62. $tresc .="\n$tresclistu\n";
  63.  
  64. // nagłówki i obsługa załącznika
  65. $plik_nazwa_tmp = $_FILES["plik"]["tmp_name"];
  66. $plik_nazwa_oryginalna = $_FILES["plik"]["name"];
  67. $plik_wielkosc = $_FILES["plik"]["size"];
  68.  
  69. if (is_uploaded_file($plik_nazwa_tmp))
  70. {
  71. $tresc .="--___$znacznik==\n";
  72. $tresc .="Content-Type: image/gif\n";
  73. $tresc .="Content-Disposition: attachment;\n";
  74. $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
  75. $tresc .="Content-Transfer-Encoding: base64\n\n";
  76. $f = fopen($plik_nazwa_tmp,"rb");
  77. $dane = fread($f,filesize($plik_nazwa_tmp));
  78. fclose($f);
  79. $tresc .= chunk_split(base64_encode($dane));
  80. $tresc .="--___$znacznik==--\n";
  81. }
  82. //walidiacja poprawnosci
  83. // sprawdzanie wypełnienia pól
  84.  
  85. elseif ($imie == "") echo $error;
  86. elseif ($nazwisko == "") echo $error;
  87. elseif ($adresemail == "") echo $error;
  88. elseif ($telefon == "") echo $error;
  89. elseif ($miasto == "") echo $error;
  90. elseif ($ulicainrdomu == "") echo $error;
  91. elseif ($kodpocztowy == "") echo $error;
  92. elseif ($wojewodztwo == "") echo $error;
  93. elseif ($rokurodzenia == "") echo $error;
  94. elseif ($rozmiarubrania == "") echo $error;
  95. elseif ($rozmiarkolnierzyka == "") echo $error;
  96. elseif ($rozmiarbuta == "") echo $error;
  97. elseif ($wzrost == "") echo $error;
  98. elseif ($waga == "") echo $error;
  99. elseif ($biust == "") echo $error;
  100. elseif ($talia == "") echo $error;
  101. elseif ($aktualnykolorwlosow == "") echo $error;
  102. elseif ($koloroczu == "") echo $error;
  103. elseif ($zawod == "") echo $error;
  104. elseif (!eregi("^.+@.+..+$", $adresemail)) echo $erroremail;
  105.  
  106. else {
  107.  
  108.  
  109.  // wysłanie listu
  110.  if (mail($odbiorca,$tytul,$tresc,$naglowki))
  111.  {
  112.  print $submit_ok;
  113.  }
  114.  else
  115.  {
  116.  print $fatal_error;
  117.  }
  118. }
  119. }
  120.  
  121.  
  122.  
  123. ?>
  124. </html>


Wiem, ze to dużo kodu, ale może dlatego że formular zstaje się z załącznikiem za duzy tak jest?
erix
Cytat
Kod
$plik = $_POST['plik'];

$_POST?
mike
Jakiś problem z tytułem wątku tongue.gif

Doczytaj Regulamin (oraz zasady pisania na Przedszkolu) a później wyślij poprawny tytuł wątku do moderatora.
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.