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

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

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:
ale nic z tego nie wyszło...
Oto cały kod:
<script type="text/javascript" src="config/js/jquery-1.7.1.min.js"></script> <?php require_once 'config/class.phpmailer.php'; $sprawdzEmail = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/'; $email = $_POST['email']; } } $mail = new PHPMailer(); $mail->CharSet = "UTF-8"; $mail->Body = "Imię i nazwisko: {$_POST['imie_nazwisko']}\r Nazwa firmy: {$_POST['nazwa_firmy']}\r Telefon kontaktowy: {$_POST['tel']}\r e-mail: {$email}\r Konfiguracja językowa. Z języka: {$_POST['z_jezyka']} na język: {$_POST['na_jezyk']}\r Rodzaj tłumaczenia: {$_POST['rodzaj']}\r Oczekiwany termin realizacji: {$_POST['termin']}\r Rodzaj tłumaczenia: {$_POST['rodzaj']}\r Zachowanie układu dokumentu: {$_POST['uklad']}\r Dodatkowe informacje: {$_POST['info']}"; $mail->SetFrom($_POST['email'], $_POST['imie_nazwisko'].' '.$_POST['nazwa_firmy']); $mail->AddAddress('moj@mail.com', 'Nazwa nazwa'); $mail->Subject = 'Zapytanie o wycenę'; $i = 0; for($i; $i<$fileCount; $i++) { $mail->AddAttachment($_FILES["plik"]["tmp_name"][$i], $_FILES["plik"]["name"][$i]); } } if(!$mail->Send()) { } else { } } ?> <script type="text/javascript"> $(document).ready( function() { $("#dodaj").click(function() { var new_label = $("<label>"); var new_input = $("<input>"); new_input.attr("type", "file"); new_input.attr("name", "plik[]"); new_input.attr("class", "input_5"); var new_link = $("<a>"); new_link.attr("href", "#"); new_link.attr("class", "but3"); new_link.html("usuń"); new_link.click(function() { $(this).parent("label").remove(); }); new_label.append(new_input); new_label.append(new_link); $("form[name=wycena]").append(new_label); new_label.appendTo(prawa); new_label.style.display = "block"; return false; }); }); </script> <script type="text/javascript"> // <![CDATA[ function sprawdz(formularz) { for (i = 0; i < formularz.length; i++) { var pole = formularz.elements[i]; 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 == "") { alert("Proszę wypełnić wszystkie obowiązkowe pola!"); return false; } } return true; } // ]]> </script> <form method="post" action="#" name="wycena" enctype="multipart/form-data" onsubmit="if (sprawdz(this)) return true; return false"> Imię i nazwisko: <input name="imie_nazwisko" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['imie_nazwisko'];} ?>" /> Nazwa firmy: <input name="nazwa_firmy" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['nazwa_firmy'];} ?>" /> Adres e-mail: <input name="email" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['email'];} ?>" /> Telefon kontaktowy: <input name="tel" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['tel'];} ?>" /> Konfiguracja językowa: Rodzaj tłumaczenia: <select name="rodzaj" class="input_3"> <option></option> <option value="Tak">Zwykłe</option> <option value="Nie">Przysięgłe</option> </select> Oczekiwany termin realizacji: <input name="termin" type="text" class="input_1" value="<?php if($_POST['wyslij']){echo $_POST['termin'];} ?>" /> Zachowanie układu dokumentu: <select name="uklad" class="input_3"> <option></option> <option value="Tak">Tak</option> <option value="Nie">Nie</option> </select> Dodatkowe informacje: <textarea name="info" rows="10" class="input_4"><?php if($_POST['wyslij']){echo $_POST['info'];} ?></textarea> Prześlij plik: <div id="prawa"><input name="plik[]" type="file" value="" class="input_5"/></div> (dozwolone formaty: pdf, doc(x), xls(x), ppt(x), jpg) <a href="#" id="dodaj" class="but2">Dodaj kolejny plik</a> <input type="reset" value="Wyczyść formularz" class="but2" /> <input name="wyslij" type="submit" value="Wyślij >>" class="but" /> </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)

Pozdrawiam i liczę na was!

Piotrek.