Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Proźba o pomoc w edycji skryptu, Jak ustawić minimalną wielkość załącznika?
marjaan
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 13.10.2009

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


Witam serdecznie

mój skrypt wysyła maila i 5 załączników, ale jest spora niedogodność, mianowicie...
jeśli do formularza dołączę tylko jeden załącznik, to skrypt wyśle mi na maila i tak 5 załączników... z tym że jeden to będzie faktycznie załączony do formularza plik...
a pozostałe cztery to będą puste pliki TXT z kolejnymi nazwami... poniżej pokażę jak to wygląda...

Załączniki:
bezNazwy1.txt (0,20 kB) Zapisz <<< to jest plik zawierający treść maila
angielski.doc (41,46 kB) Zapisz <<< to jest faktycznie załączony przeze mnie do formularza załącznik
bezNazwy2.txt (0,00 kB) Zapisz <<< a reszta to puste pliki txt, wysłane w miejsce nie załączonych załączników
bezNazwy3.txt (0,00 kB) Zapisz
bezNazwy4.txt (0,00 kB) Zapisz
bezNazwy5.txt (0,00 kB) Zapisz


Chciałbym oczywiście żeby dochodziło tylko tyle załączników ile faktycznie załączę, bez tych zbędnych pustych załączników, lub aby skrypt ignorował załączniki o zerowej wielkości
Czy wiesz może jaką funkcję trzeba dopisać, co zmienić w kodzie, by osiągnąć ten cel?

Oto aktualny wygląd skryptu:

  1. <?php
  2. $arrLocale = array( "pl_PL", "polish_pol" );
  3. setlocale( LC_ALL, $arrLocale );
  4.  
  5. $data = strftime("%A, %d %B %Y");
  6. $boundary = "-->===_54654747_===<---->>4255==_";
  7.  
  8. $head = "From: $email\n";
  9. $head = $head . "Reply-To: $email\n";
  10. $head = $head . "X-Mailer: PHP\n";
  11. $head = $head . "X-Sender: $email\n";
  12. $head = $head . "MIME-version: 1.0\n";
  13. $head = $head . "Content-type: multipart/mixed; ";
  14. $head = $head . "boundary=\"$boundary\"\n";
  15. $head = $head . "Content-transfer-encoding: 7BIT\n";
  16. $head = $head . "X-attachments: $filename_name;\n\n";
  17.  
  18.  
  19. $mesg = "--" . $boundary . "\n";
  20. $mesg = $mesg . "Content-Type: text/plain; charset=\"iso-8859-2\"\n\n";
  21. $mesg = $mesg
  22.  
  23. .$numer = "Numer zlecenia: $numer" ." "
  24. .$data1 = "Data: $data1" ."\n"
  25. .$zleceniodawca = "Zleceniodawca: $zleceniodawca" ."\n"
  26. .$z_jezyka = "Tlumaczenie z jezyka: $z_jezyka" ." "
  27. .$na_jezyk = "na jezyk: $na_jezyk" ."\n"
  28. .$dane = "Dane do rachunku: $dane" ."\n"
  29. .$telefon = "Telefon: $telefon" ."\n"
  30. .$uwagi = "Uwagi: $uwagi" ."\n"
  31. .$www = "Strona www: $www" ."\n"
  32. .$email = "E-MAIL: $email" ."\n"
  33. .$data = "Wysłano dnia: $data" ."\n";
  34.  
  35. // plik1
  36.  
  37. $mesg = $mesg . "--" . $boundary . "\n";
  38. $mesg = $mesg . "Content-type: " . $filename1_type . "; name=\"$filename1_name\";\n";
  39. $mesg = $mesg . "Content-Transfer-Encoding: base64\n";
  40. $mesg = $mesg . "Content-disposition: attachment; filename= \"$filename1_name\"\n\n";
  41. $mesg = $mesg . fileopenanddecode($filename1) . "\n";
  42. $mesg = $mesg . "--" . $boundary . "\n";
  43.  
  44. // plik2
  45.  
  46. $mesg = $mesg . "--" . $boundary . "\n";
  47. $mesg = $mesg . "Content-type: " . $filename2_type . "; name=\"$filename2_name\";\n";
  48. $mesg = $mesg . "Content-Transfer-Encoding: base64\n";
  49. $mesg = $mesg . "Content-disposition: attachment; filename= \"$filename2_name\"\n\n";
  50. $mesg = $mesg . fileopenanddecode($filename2) . "\n";
  51. $mesg = $mesg . "--" . $boundary . "\n";
  52.  
  53. // plik3
  54.  
  55. $mesg = $mesg . "--" . $boundary . "\n";
  56. $mesg = $mesg . "Content-type: " . $filename3_type . "; name=\"$filename3_name\";\n";
  57. $mesg = $mesg . "Content-Transfer-Encoding: base64\n";
  58. $mesg = $mesg . "Content-disposition: attachment; filename= \"$filename3_name\"\n\n";
  59. $mesg = $mesg . fileopenanddecode($filename3) . "\n";
  60. $mesg = $mesg . "--" . $boundary . "\n";
  61.  
  62. // plik4
  63.  
  64. $mesg = $mesg . "--" . $boundary . "\n";
  65. $mesg = $mesg . "Content-type: " . $filename4_type . "; name=\"$filename4_name\";\n";
  66. $mesg = $mesg . "Content-Transfer-Encoding: base64\n";
  67. $mesg = $mesg . "Content-disposition: attachment; filename= \"$filename4_name\"\n\n";
  68. $mesg = $mesg . fileopenanddecode($filename4) . "\n";
  69. $mesg = $mesg . "--" . $boundary . "\n";
  70.  
  71. // plik5
  72.  
  73. $mesg = $mesg . "--" . $boundary . "\n";
  74. $mesg = $mesg . "Content-type: " . $filename5_type . "; name=\"$filename5_name\";\n";
  75. $mesg = $mesg . "Content-Transfer-Encoding: base64\n";
  76. $mesg = $mesg . "Content-disposition: attachment; filename= \"$filename5_name\"\n\n";
  77. $mesg = $mesg . fileopenanddecode($filename5) . "\n";
  78. $mesg = $mesg . "--" . $boundary . "-- \n";
  79.  
  80.  
  81.  
  82. function fileopenanddecode($file) {
  83. if (is_readable($file)) {
  84. $fd = fopen($file, "r");
  85. $plik = fread($fd, filesize($file));
  86. $encoded = chunk_split(base64_encode($plik));
  87. fclose($fd);
  88. }
  89. return $encoded;
  90. }
  91.  
  92. mail("mojmail@wp.pl", "ZLECENIE ON LINE", $mesg , $head);
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99. ?>
  100.  
  101. <html>
  102.  
  103. <head>
  104. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  105. <meta http-equiv="Content-Language" content="pl">
  106. <link rel="Shortcut icon" href="images/ikonka.ico" />
  107. <title>Zlecenie</title>
  108. </head>
  109.  
  110. <body bgcolor="#9D826D">
  111.  
  112. <p align="left">
  113. <p></p>
  114. <p></p>
  115. <font face="Arial" style="font-size: 14px" color="#FFFFFF"><b>Dziękuję, Twoje dane zostały przesłane!</b></font>
  116. <p></p>
  117. <button name="B3" onclick="java script:history.back();">Kolejne zlecenie
  118. </button></p>
  119. </body>
  120.  
  121. </html>


Ten post edytował marjaan 18.10.2009, 01:10:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Puzi
post
Post #2





Grupa: Zarejestrowani
Postów: 231
Pomógł: 17
Dołączył: 26.08.2007

Ostrzeżenie: (10%)
X----


Proponuję Ci sprawdzać przed wysłaniem meila czy plik został załączony. Możesz to zrobić za pomocą tablicy $_FILES....A sprawdzisz to tak:$_FILES['plik']['error'] i jeśli zawartość tego elementu wynosi 4 to oznacza że plik nie został wybrany.
Go to the top of the page
+Quote Post
marjaan
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 13.10.2009

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


Do zamknięcia. Problem już rozwiązany.

@Puzi
Dziękuję za próbę pomocy
Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 13:16