Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz z załącznikami, jak ograniczyć formaty plików? phpmailer
Forum PHP.pl > Forum > Przedszkole
huhuhh
Witam wszystkich!
Jestem nowy na forum. Wcześniej radziłem sobie bez zadawania pytań, wystarczyło przeszukanie google, ale tym razem wymiękam...
Szukałem na wielu stronach, ale chyba nikt nie miał takiego problemu.

Chodzi o to, że tworzę formularz w php korzystający z phpmailera i wszystko działa świetnie, mimo tego, że mam pierwszy raz styczność z phpmailerem a w php jestem taki między zielonym a żółtym tongue.gif

Nie mogłem sobie poradzić ze sprawdzaniem czy wymagane pola zostały wypełnione, ale uporałem się z tym korzystając z js. Jeżeli ktoś ma sposób jak to zrobić w php to proszę też o pomoc smile.gif ale to nie jest najważniejsze.

Najważniejsze: Pliki, które załącza użytkownik chciałbym ograniczyć do kilku formatów (dozwolone formaty: pdf, doc(x), xls(x), ppt(x), jpg), na tę chwilę formularz wyśle wszystko.
Chciałbym, aby tak jak pojawia się komunikat 'Wiadomość wysłano', lub 'Proszę podać poprawny adres email' pojawiał się też komunikat typu: 'Załączony plik jest niedopuszczalny' i wiadomość nie zostanie wysłana.

Proszę was bardzo o pomoc, bo już nie mam siły na to... Próbowałem wykorzystać coś takiego:
  1. if(preg_match('@(.*)\.(png|jpg|jpeg|gif)@i', $_FILES["plik"]["tmp_name"]))

ale nic z tego nie wyszło...

Oto cały kod:
  1. <script type="text/javascript" src="config/js/jquery-1.7.1.min.js"></script>
  2.  
  3. <?php
  4. require_once 'config/class.phpmailer.php';
  5.  
  6. if(!empty($_POST['email'])) {
  7. $sprawdzEmail = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/';
  8. if (preg_match($sprawdzEmail, $_POST['email'])) {
  9. $email = $_POST['email'];
  10. }
  11. }
  12.  
  13. if(!empty($_POST['wyslij']) && empty($email)) {
  14. echo "<h2>Proszę podać poprawny adres email</h2>";
  15. } elseif(!empty($_POST['wyslij'])) {
  16.  
  17. $mail = new PHPMailer();
  18. $mail->CharSet = "UTF-8";
  19. $mail->Body = "Imię i nazwisko: {$_POST['imie_nazwisko']}\r
  20. Nazwa firmy: {$_POST['nazwa_firmy']}\r
  21. Telefon kontaktowy: {$_POST['tel']}\r
  22. e-mail: {$email}\r
  23. Konfiguracja językowa. Z języka: {$_POST['z_jezyka']} na język: {$_POST['na_jezyk']}\r
  24. Rodzaj tłumaczenia: {$_POST['rodzaj']}\r
  25. Oczekiwany termin realizacji: {$_POST['termin']}\r
  26. Rodzaj tłumaczenia: {$_POST['rodzaj']}\r
  27. Zachowanie układu dokumentu: {$_POST['uklad']}\r
  28. Dodatkowe informacje: {$_POST['info']}";
  29. $mail->SetFrom($_POST['email'], $_POST['imie_nazwisko'].' '.$_POST['nazwa_firmy']);
  30. $mail->AddAddress('moj@mail.com', 'Nazwa nazwa');
  31. $mail->Subject = 'Zapytanie o wycenę';
  32.  
  33. if(!empty($_FILES)) {
  34. $fileCount = count($_FILES["plik"]["tmp_name"]);
  35. $i = 0;
  36. for($i; $i<$fileCount; $i++) {
  37. $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]);
  38. }
  39.  
  40. }
  41.  
  42. if(!$mail->Send()) {
  43. echo '<h2>Wiadomość nie została wysłana.</h2>';
  44. echo 'Błąd wysyłania: ' . $mail->ErrorInfo;
  45. } else {
  46. echo '<h2>Wiadomość została wysłana</h2>';
  47. }
  48. }
  49. ?>
  50.  
  51.  
  52. <script type="text/javascript">
  53. $(document).ready(
  54. function()
  55. {
  56. $("#dodaj").click(function()
  57. {
  58. var new_label = $("<label>");
  59. var new_input = $("<input>");
  60. new_input.attr("type", "file");
  61. new_input.attr("name", "plik[]");
  62. new_input.attr("class", "input_5");
  63. var new_link = $("<a>");
  64. new_link.attr("href", "#");
  65. new_link.attr("class", "but3");
  66. new_link.html("usuń");
  67. new_link.click(function()
  68. {
  69. $(this).parent("label").remove();
  70. });
  71.  
  72. new_label.append(new_input);
  73. new_label.append(new_link);
  74. $("form[name=wycena]").append(new_label);
  75. new_label.appendTo(prawa);
  76. new_label.style.display = "block";
  77. return false;
  78. });
  79.  
  80. });
  81. </script>
  82.  
  83. <script type="text/javascript">
  84. // <![CDATA[
  85. function sprawdz(formularz)
  86. {
  87. for (i = 0; i < formularz.length; i++)
  88. {
  89. var pole = formularz.elements[i];
  90. if (!pole.disabled && !pole.readonly && (pole.name == "tel" || pole.name == "imie_nazwisko" || pole.name == "z_jezyka" || pole.name == "na_jezyk" || pole.name == "rodzaj" || pole.name == "uklad" || pole.name == "e-mail") && pole.value == "")
  91. {
  92. alert("Proszę wypełnić wszystkie obowiązkowe pola!");
  93. return false;
  94. }
  95. }
  96. return true;
  97. }
  98. // ]]>
  99. </script>
  100.  
  101.  
  102. <form method="post" action="#" name="wycena" enctype="multipart/form-data" onsubmit="if (sprawdz(this)) return true; return false">
  103. Imię i nazwisko:
  104. <input name="imie_nazwisko" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['imie_nazwisko'];} ?>" />
  105. Nazwa firmy:
  106. <input name="nazwa_firmy" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['nazwa_firmy'];} ?>" />
  107. Adres e-mail:
  108. <input name="email" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['email'];} ?>" />
  109. Telefon kontaktowy:
  110. <input name="tel" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['tel'];} ?>" />
  111. Konfiguracja językowa:
  112. z języka:<input name="z_jezyka" type="text" class="input_2" value="<?php if($_POST['wyslij']){echo $_POST['z_jezyka'];} ?>" /> na język: <input name="na_jezyk" type="text" class="input_2" value="<?php if($_POST['wyslij']){echo $_POST['na_jezyk'];} ?>" />
  113. Rodzaj tłumaczenia:
  114. <select name="rodzaj" class="input_3">
  115. <option></option>
  116. <option value="Tak">Zwykłe</option>
  117. <option value="Nie">Przysięgłe</option>
  118. </select>
  119. Oczekiwany termin realizacji:
  120. <input name="termin" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['termin'];} ?>" />
  121. Zachowanie układu dokumentu:
  122. <select name="uklad" class="input_3">
  123. <option></option>
  124. <option value="Tak">Tak</option>
  125. <option value="Nie">Nie</option>
  126. </select>
  127.  
  128. Dodatkowe informacje:
  129. <textarea name="info" rows="10" class="input_4"><?php if($_POST['wyslij']){echo $_POST['info'];} ?></textarea>
  130.  
  131.  
  132. Prześlij plik:
  133. <div id="prawa"><input name="plik[]" type="file" value="" class="input_5"/></div>
  134. (dozwolone formaty: pdf, doc(x), xls(x), ppt(x), jpg)
  135.  
  136. <a href="#" id="dodaj" class="but2">Dodaj kolejny plik</a>
  137. <input type="reset" value="Wyczyść formularz" class="but2" />
  138. <input name="wyslij" type="submit" value="Wyślij >>" class="but" />
  139. </form>




To jest sprawny kod, jeżeli ktoś taki potrzebuje i nie przeszkadza mu, że wszystko można przez niego przepuścić a on nigdy błędu nie wyświetli to może z niego skorzystać (musi dorzucić tylko phpmailera i jquery) smile.gif

Pozdrawiam i liczę na was! smile.gif
Piotrek.
skowron-line
  1. file = $_FILES["plik"]["name"][$i];
  2. $ext = pathinfo($file, PATHINFO_EXTENSION);
  3.  
  4. if(in_array($ext, array('jpg', 'doc', 'xls'))
  5. {
  6. //dozwolone
  7. }
  8. else
  9. {
  10. //niedozolone
  11. }
huhuhh
Cytat(skowron-line @ 6.12.2012, 14:51:18 ) *
  1. file = $_FILES["plik"]["name"][$i];
  2. $ext = pathinfo($file, PATHINFO_EXTENSION);
  3.  
  4. if(in_array($ext, array('jpg', 'doc', 'xls'))
  5. {
  6. //dozwolone
  7. }
  8. else
  9. {
  10. //niedozolone
  11. }



brakowało jednego nawiasu
  1. $file = $_FILES["plik"]["name"][$i];
  2. $ext = pathinfo($file, PATHINFO_EXTENSION);
  3. if(in_array($ext, array('jpg', 'doc', 'xls'))) {
  4. echo '<h2>Wiadomość została wysłana</h2>';
  5. } else {
  6. echo '<h2>error</h2>';
  7. }


teraz działa, tylko, że zawsze wywala error, nawet jak wysyłam plik .jpg
Czego to może być wina?

aaa... i jeszcze jak go umieścić w całości? bo mimo tego, że wywala error to narazie maila nie zatrzymuje i wysyła go do mnie :/
skowron-line
Zwróć uwagę na wielkość liter
huhuhh
Cytat(skowron-line @ 6.12.2012, 16:26:32 ) *
Zwróć uwagę na wielkość liter


Próbowałem wszystkiego i nadal nic, do każdego formatu pokazuje 'error' a i tak wysyła. Może go w złym miejscu umieściłem?

  1. <?php
  2. require_once 'config/class.phpmailer.php';
  3.  
  4. if(!empty($_POST['email'])) {
  5. $sprawdzEmail = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/';
  6. if (preg_match($sprawdzEmail, $_POST['email'])) {
  7. $email = $_POST['email'];
  8. }
  9. }
  10.  
  11. if(!empty($_POST['wyslij']) && empty($email)) {
  12. echo "<h2>Proszę podać poprawny adres email</h2>";
  13. } elseif(!empty($_POST['wyslij'])) {
  14.  
  15. $mail = new PHPMailer();
  16. $mail->CharSet = "UTF-8";
  17. $mail->Body = "Imię i nazwisko: {$_POST['imie_nazwisko']}\r
  18. Nazwa firmy: {$_POST['nazwa_firmy']}\r
  19. Telefon kontaktowy: {$_POST['tel']}\r
  20. e-mail: {$email}\r
  21. Konfiguracja językowa. Z języka: {$_POST['z_jezyka']} na język: {$_POST['na_jezyk']}\r
  22. Rodzaj tłumaczenia: {$_POST['rodzaj']}\r
  23. Oczekiwany termin realizacji: {$_POST['termin']}\r
  24. Rodzaj tłumaczenia: {$_POST['rodzaj']}\r
  25. Zachowanie układu dokumentu: {$_POST['uklad']}\r
  26. Dodatkowe informacje: {$_POST['info']}";
  27. $mail->SetFrom($_POST['email'], $_POST['imie_nazwisko'].' '.$_POST['nazwa_firmy']);
  28. $mail->AddAddress('moj@mail.com', 'Bla bla');
  29. $mail->Subject = 'Zapytanie o wycenę';
  30.  
  31. if(!empty($_FILES)) {
  32. $fileCount = count($_FILES["plik"]["tmp_name"]);
  33. $i = 0;
  34. for($i; $i<$fileCount; $i++) {
  35. $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]);
  36. }
  37. }
  38.  
  39. $file = $_FILES["plik"]["name"][$i];
  40. $ext = pathinfo($file, PATHINFO_EXTENSION);
  41. if(in_array($ext, array('jpg','jpeg','doc','xls'))) {
  42. echo '<h2>Wiadomość została wysłanaaa</h2>';
  43. } else {
  44. echo '<h2>error</h2>';
  45. }
  46.  
  47. if(!$mail->Send()) {
  48. echo '<h2>Wiadomość nie została wysłana.</h2>';
  49. echo 'Błąd wysyłania: ' . $mail->ErrorInfo;
  50. } else {
  51. echo '<h2>Wiadomość została wysłana</h2>';
  52. }
  53. }
  54. ?>
skowron-line
  1. $file = $_FILES["plik"]["name"][$i];
  2. $ext = pathinfo($file, PATHINFO_EXTENSION);
  3. if(in_array($ext, array('jpg','jpeg','doc','xls'))) {
  4. echo '<h2>Wiadomość została wysłanaaa</h2>'; //<---- tu wyswietlasz komunikat ze wiadomość została wysłana ale jej jeszcze nie wysłałeś
  5. } else {
  6. echo '<h2>error</h2>'; //<----- tu wyświetlasz błąd i to że go wyświetlisz nie oznacza że skrypt przestał działąć
  7. }
  8.  
  9. if(!$mail->Send()) { //<------ tu wysyłasz
  10. echo '<h2>Wiadomość nie została wysłana.</h2>';
  11. echo 'Błąd wysyłania: ' . $mail->ErrorInfo;
  12. } else {
  13. echo '<h2>Wiadomość została wysłana</h2>';
  14. }
  15. }
huhuhh
Trochę zaczynam rozumieć... ale jestem jednak bardziej zielony niż myślałem i w tym momencie nie wiem jak wynik sprawdzenia poprawności formatu pliku (Twojego skryptu) podpiąć do całości i móc ew. zablokować wysyłanie maila.

Tak sobie myślę, że jeżeli sprawdzanie poprawności maila jest na samej górze:

  1. if(!empty($_POST['email'])) {
  2.  
  3. $sprawdzEmail = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/';
  4.  
  5. if (preg_match($sprawdzEmail, $_POST['email'])) {
  6.  
  7. $email = $_POST['email'];
  8.  
  9. }
  10.  
  11. }



a wynik tego sprawdzenia znajduje się tutaj:

  1. if(!empty($_POST['wyslij']) && empty($email)) {
  2.  
  3. echo "<h2>Proszę podać poprawny adres email</h2>";
  4.  
  5. } elseif(!empty($_POST['wyslij'])) {




To wydaje mi się, że podana przez Ciebie funkcja powinna znajdować się pod tą od maila, np. tak:

  1. if(!empty($_POST['email'])) {
  2.  
  3. $sprawdzEmail = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/';
  4.  
  5. if (preg_match($sprawdzEmail, $_POST['email'])) {
  6.  
  7. $email = $_POST['email'];
  8.  
  9. }
  10.  
  11. }
  12.  
  13. $file = $_FILES["plik"]["name"][$i];
  14. $ext = pathinfo($file, PATHINFO_EXTENSION);
  15. if(in_array($ext, array('jpg','jpeg','doc','xls'))) {
  16. echo '<h2>Wiadomość została wysłanaaa</h2>'; //<---- tu wyswietlasz komunikat ze wiadomość została wysłana ale jej jeszcze nie wysłałeś
  17. } else {
  18. echo '<h2>error</h2>'; //<----- tu wyświetlasz błąd i to że go wyświetlisz nie oznacza że skrypt przestał działąć
  19. }


ale nie powinna zawierać komunikatów tylko wynik w postaci zmiennej, który dorzucimy do:

  1. if(!empty($_POST['wyslij']) && empty($email)) {
  2.  
  3. echo "<h2>Proszę podać poprawny adres email</h2>";
  4.  
  5. } elseif(!empty($_POST['wyslij'])) {



TAK?questionmark.gifquestionmark.gif smile.gif ale jak załączyć ten wynik to już nie mam pojęcia... Proszę o pomoc smile.gif
skowron-line
"Jedyny" i najprostszy sposób w jaki powinieneś to zrobić to
  1. $error = false;
  2. $msg = '';
  3. if(1 != 2)
  4. {
  5. $error = true;
  6. $msg = "blad w 1 warunku";
  7. }
  8.  
  9. if(warunek == false)
  10. {
  11. $error = true;
  12. $msg .= "blad w 2 warunku";
  13. }
  14.  
  15. if($error == false) // nie ma błędu
  16. {
  17. $phpmailer->send();
  18. }
  19. else
  20. {
  21. echo $msg;
  22. }

huhuhh
umieściłem kod w tym miejscu:

  1. if(!empty($_FILES)) {
  2. $fileCount = count($_FILES["plik"]["tmp_name"]);
  3. $i = 0;
  4. for($i; $i<$fileCount; $i++) {
  5. $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]);
  6. }
  7. }
  8.  
  9. $file = $_FILES["plik"]["name"][$i];
  10. $ext = pathinfo($file, PATHINFO_EXTENSION);
  11. if(in_array($ext, array("jpg","jpeg","doc","xls"))) {
  12. echo '<h2>Wiadomość została wysłanaaa</h2>';
  13. } else {
  14. echo '<h2>error</h2>';
  15. }
  16.  
  17. $error = false;
  18. $msg = '';
  19. if(1 != 2)
  20. {
  21. $error = true;
  22. $msg = "blad w 1 warunku";
  23. }
  24. if(warunek == false)
  25. {
  26. $error = true;
  27. $msg .= "blad w 2 warunku";
  28. }
  29. if($error == false) // nie ma błędu
  30. {
  31. $mail->send();
  32. }
  33. else
  34. {
  35. echo $msg;
  36. }
  37. }
  38. ?>


i wyświetla mi przy każdym pliku taki błąd:
error
blad w 1 warunku


Nawet jak wysyłam bez załacznika.

I jeszcze co do samej funkcji sprawdzania formatów: ani razu nie pokazała dobrego komunikatu, czy ona faktycznie sprawdza te pliki? (próbowałem różnych formatów i różnych wielkości liter)


Wiem, że marudzę i że nie ogarniam tego, ale dlatego piszę w Przedszkolu tongue.gif a jestem uparty bo chciałbym to skończyć jak zacząłem.

Pozdrawiam i doceniam to, że mi odpisujesz skowron smile.gif
nospor
if(1 != 2)
Ty naprawdę teraz tak masz? Przecież 1 zawsze jest różne od 2 więc zawsze ten IF ci się wykona
huhuhh
faktycznie... tongue.gif to było dziwne. zrobiłem coś takiego:

  1. $file = $_FILES["plik"]["name"][$i];
  2. $ext = pathinfo($file, PATHINFO_EXTENSION);
  3. $dostepne = array("jpg","jpeg","doc","xls");
  4.  
  5. $error = false;
  6. $msg = '';
  7. if($ext != $dostepne)
  8. {
  9. $error = true;
  10. $msg = "blad w 1 warunku";
  11. }
  12. if(warunek == false)
  13. {
  14. $error = true;
  15. $msg .= "blad w 2 warunku";
  16. }
  17. if($error == false) // nie ma błędu
  18. {
  19. $mail->send();
  20. }
  21. else
  22. {
  23. echo $msg;
  24. }



ale nadal wywala blad w 1 warunku
Albo kod źle odczytuje rozszerzenie danego pliku albo źle podałem dostępne formaty i się gubi...
Widzicie błąd?? smile.gif


nospor
if($ext != $dostepne)
$ext to tekst
$dostepne to tablica
....
nie mozesz od tak jednego z drugim porownac
huhuhh
więc zrobiłem tak, żeby chociaż sprawdzić i nadal błąd:

  1. $file = $_FILES["plik"]["name"][$i];
  2. $ext = pathinfo($file, PATHINFO_EXTENSION);
  3. $dostepne = array("jpg","jpeg","doc","xls");
  4.  
  5. $error = false;
  6. $msg = '';
  7. if($ext != "jpg")
  8. {
  9. $error = true;
  10. $msg = "blad w 1 warunku";
  11. }
  12. if($warunek == false)
  13. {
  14. $error = true;
  15. $msg .= "blad w 2 warunku";
  16. }
  17. if($error == false) // nie ma błędu
  18. {
  19. $mail->send();
  20. }
  21. else
  22. {
  23. echo $msg;
  24. }



i czy zmienna $warunek jest potrzebna? do czego ona służy??


wrzucam cały kod, może zobaczycie czy coś źle umieściłem, że ciągle nic nie wychodzi:

  1. <?php
  2. require_once 'config/class.phpmailer.php';
  3.  
  4. if(!empty($_POST['email'])) {
  5. $sprawdzEmail = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/';
  6. if (preg_match($sprawdzEmail, $_POST['email'])) {
  7. $email = $_POST['email'];
  8. }
  9. }
  10.  
  11. if(!empty($_POST['wyslij']) && empty($email)) {
  12. echo "<h2>Proszę podać poprawny adres email</h2>";
  13. } elseif(!empty($_POST['wyslij'])) {
  14.  
  15. $mail = new PHPMailer();
  16. $mail->CharSet = "UTF-8";
  17. $mail->Body = "Imię i nazwisko: {$_POST['imie_nazwisko']}\r
  18. Nazwa firmy: {$_POST['nazwa_firmy']}\r
  19. Telefon kontaktowy: {$_POST['tel']}\r
  20. e-mail: {$email}\r
  21. Konfiguracja językowa. Z języka: {$_POST['z_jezyka']} na język: {$_POST['na_jezyk']}\r
  22. Rodzaj tłumaczenia: {$_POST['rodzaj']}\r
  23. Oczekiwany termin realizacji: {$_POST['termin']}\r
  24. Rodzaj tłumaczenia: {$_POST['rodzaj']}\r
  25. Zachowanie układu dokumentu: {$_POST['uklad']}\r
  26. Dodatkowe informacje: {$_POST['info']}";
  27. $mail->SetFrom($_POST['email'], $_POST['imie_nazwisko'].' '.$_POST['nazwa_firmy']);
  28. $mail->AddAddress('xxx@xxx.com', 'xxx xxx');
  29. $mail->Subject = 'Zapytanie o wycenę tłumaczenia';
  30.  
  31. if(!empty($_FILES)) {
  32. $fileCount = count($_FILES["plik"]["tmp_name"]);
  33. $i = 0;
  34. for($i; $i<$fileCount; $i++) {
  35. $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]);
  36. }
  37. }
  38.  
  39. $file = $_FILES["plik"]["name"][$i];
  40. $ext = pathinfo($file, PATHINFO_EXTENSION);
  41. $dostepne = array("jpg","jpeg","doc","xls");
  42.  
  43. $error = false;
  44. $msg = '';
  45. if($ext != "jpg")
  46. {
  47. $error = true;
  48. $msg = "blad w 1 warunku";
  49. }
  50. if($warunek == false)
  51. {
  52. $error = true;
  53. $msg .= "blad w 2 warunku";
  54. }
  55. if($error == false) // nie ma błędu
  56. {
  57. $mail->send();
  58. }
  59. else
  60. {
  61. echo $msg;
  62. }
  63. }
  64. ?>
nospor
$ext = pathinfo($file, PATHINFO_EXTENSION);
var_dump($ext);

Co ci wyświetla?
huhuhh
coś takiego:
string(0) "" blad w 1 warunkublad w 2 warunku

  1. if(!empty($_FILES)) {
  2. $fileCount = count($_FILES["plik"]["tmp_name"]);
  3. $i = 0;
  4. for($i; $i<$fileCount; $i++) {
  5. $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]);
  6. }
  7. }
  8.  
  9. $file = $_FILES["plik"]["name"][$i];
  10. $ext = pathinfo($file, PATHINFO_EXTENSION);
  11. var_dump($ext);
  12. $dostepne = array("jpg","jpeg","doc","xls");
  13.  
  14. $error = false;
  15. $msg = '';
  16. if($ext != "jpg")
  17. {
  18. $error = true;
  19. $msg = "blad w 1 warunku";
  20. }
  21. if($warunek == false)
  22. {
  23. $error = true;
  24. $msg .= "blad w 2 warunku";
  25. }
  26. if($error == false) // nie ma błędu
  27. {
  28. $mail->send();
  29. }
  30. else
  31. {
  32. echo $msg;
  33. }
nospor
No to skoro $ext nie zawiera nic, to trudno by było równe "jpg" czy cokolwiek innego.
Musisz szukać błędu czemu $ext nie zawiera nic.
huhuhh
dzięki za diagnoze smile.gif

Myślę, że błąd jest gdzieś w tym:
  1. $file = $_FILES["plik"]["name"][$i];


  1. if(!empty($_FILES)) {
  2. $fileCount = count($_FILES["plik"]["tmp_name"]);
  3. $i = 0;
  4. for($i; $i<$fileCount; $i++) {
  5. $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]);
  6. }
  7. }



może funkcja jest w złym miejscu i wysyłany plik jakoś ją omija?
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.