![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Walczę dzisiaj pół dnia z formularzem na stronie, poprzedni nie spełniał funkcji, można było wysłać pusty, źle wysyłał polskie znaki www.firma-krzak.pl/kontakt.html.
Programista nie jestem, mam podstawy html, ale na php poległem i nie mam czasu zgłębiać całego języka. Doszedłem do jak powstawiać pola wymagane, sprawdzanie e-mail i wsio działa. Utknąłem na kawałku kodu pobranym z netu - jeżeli jest któreś pole źle wypełnione przenosi na inna stronę (jak podam ta na której jest formularz nic się nie dzieje) z komunikatem o błędzie w formularzu a ja chciał bym żeby pozostał na tej samej, podobnie po wysłaniu poprawnego e-maila. Nie mogę ruszyć z miejsca sprawdzenia nr telefonu - zero reakcji czego bym nie wpisał Podobnie z załącznikiem - mogę dodać ale go nie wysyła. Jak by ktos rzucił okiem na ten chaos będę wdzięczny Kod <?php if(empty($_POST['submit'])){ ?> <form action="http://www.firma-krzak.pl/zalacznik.php" method="post"> <!--nazwa strony na której znajduje sie formularz--> <table> <tr><td class="prawy">Imie i Nazwisko <br>lub nazwa firmy:</td> <td><input type="text" name="nazwa" style="width:300px;"/></td></tr> <tr><td class="prawy">Kod pocztowy:</td> <td><input type="text" name="kod" style="width:100px;"/></td></tr> <tr><td class="prawy">Adres e-mail:</td> <td><input type="text" name="email" style="width:300px;"/></td></tr> <tr><td class="prawy">Telefon:</td> <td><input type="text" name="tel" style="width:300px;"/></td></tr> <tr><td class="prawy">Tresc wiadomosci:</td> <td><textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea></td></tr> <tr><td class="prawy">Wybierz adresata:</td> <td><select name="odbiorca" style="width:300px;"> <option>biuro@firma-krzak.pl</option> <option>projektowanie@firma-krzak.pl</option> <option>nawadnianie@firma-krzak.pl</option> </select></td></tr> <tr><td class="srodek">Zalacznik 1:</td> <td class="zwykly"><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><INPUT type="file" name="plik1"></td></tr> <tr><td class="srodek">Zalacznik 2:</td> <td class="zwykly"><input type="hidden" name="wyslij" value="1" /><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><INPUT type="file" name="plik2"></td></tr> <tr><td class="srodek">Zalacznik 3:</td> <td class="zwykly"><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><INPUT type="file" name="plik3"></td></tr> <tr><td class="srodek"></td> <td class="srodek"><input type="submit" name="submit" value="Wyslij formularz"/><input type="reset" value="Wyczysc"/></td></tr> </table> </form> <?php /*sprawdzenie wypelnienia wszystkich pól*/ }elseif(!empty($_POST['nazwa']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci']) && !empty($_POST['tel'])){ /*Sprawdzanie poprawnosci numeru telefonu - niedziala if ($tel == "" || !preg_match("/^[0-9]{9,11}$/i", $tel)) { $error .= "<span style=\"color: #FF0000; text-align: center;\">Nieprawidlowy numer telefonu</span><br>"; } */ /* Funkcja sprawdzajaca poprawnosc E-Maila */ function SprawdzEmail($email) { if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){return false;} return true; } if(SprawdzEmail($_POST['email'])){ /* Tworzymy szkielet wysylanej wiadomosci */ $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"]; $plik_nazwa_oryginalna = $_FILES["plik1"]["name"]; $plik_wielkosc = $_FILES["plik1"]["size"]; if (is_uploaded_file($plik_nazwa_tmp)) { $tresc .="--___$znacznik==\n"; $tresc .="Content-Type: image/gif\n"; $tresc .="Content-Disposition: attachment;\n"; $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n"; $tresc .="Content-Transfer-Encoding: base64\n\n"; $f = fopen($plik_nazwa_tmp,"rb"); $dane = fread($f,filesize($plik_nazwa_tmp)); fclose($f); $tresc .= chunk_split(base64_encode($dane)); $tresc .="--___$znacznik==--\n"; } $adresemail=$_POST['odbiorca']; $ip=$_SERVER['REMOTE_ADDR']; /* Wybierz kodowanie znaków usuwajac */ $charset = 'iso-8859-2'; //$charset = 'utf-8'; $host=gethostbyaddr($_SERVER['REMOTE_ADDR']); $wiadomosc="Od: $_POST[nazwa] ($_POST[email]), tel: $_POST[tel]\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]"; $nadawca="From: $_POST[email]"; @mail($adresemail, "Formularz z www", "$wiadomosc", "$nadawca"); echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>"; }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; } }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypelnij wszystkie pola formularza!!!</span>"; } ?> wrzuciłem testowo tu http://www.firma-krzak.pl/zalacznik.php |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
http://www.google.pl/search?aq=0&oq=fo...ipart+form-data
Zamień kontakt.html na kontakt.php, to będzie krok w dobrą stronę. Akcję formularza zamień na http://www.firma-krzak.pl/kontakt.php Jeśli dalej utkniesz na czymś, to pomożemy. ps. Domena + branża (IMG:style_emoticons/default/biggrin.gif) :D Hahaha Ten post edytował darko 11.01.2012, 22:00:30 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Na tym etapie jeszcze mi wszystko działało prawidłowo, oprócz tego ze komunikat o błędnie wypełnionych polach pojawia się zamiast formularza, a wolał bym żeby był np pod przyciskiem "Wyślij".
Niestety nie wpadłem jeszcze na ciąg przyczynowo-skutkowy odpowiadający temu działaniu. Kod <?php if(empty($_POST['submit'])){ ?> <form action="http://www.firma-krzak.pl/kontakt-nowy.php" method="post"> <!--nazwa strony na której znajduje sie formularz--> <table> <tr><td class="prawy">Imie i Nazwisko <br>lub nazwa firmy:</td> <td><input type="text" name="nazwa" style="width:300px;"/></td></tr> <tr><td class="prawy">Adres e-mail:</td> <td><input type="text" name="email" style="width:300px;"/></td></tr> <tr><td class="prawy">Telefon:</td> <td><input type="text" name="tel" style="width:300px;"/></td></tr> <tr><td class="prawy">Tresc wiadomosci:</td> <td><textarea name="trescwiadomosci" cols="30" rows="6" style="width:300px;"></textarea></td></tr> <tr><td class="prawy">Wybierz adresata:</td> <td><select name="odbiorca" style="width:300px;"> <option>biuro@firma-krzak.pl</option> <option>projektowanie@firma-krzak.pl</option> <option>nawadnianie@firma-krzak.pl</option> </select></td></tr> <tr><td class="srodek"></td> <td class="srodek"><input type="submit" name="submit" value="Wyslij formularz"/><input type="reset" value="Wyczysc"/></td></tr> </table> </form> <?php /*sprawdzenie wypelnienia wszystkich pól*/ }elseif(!empty($_POST['nazwa']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci']) && !empty($_POST['tel'])){ /* Funkcja sprawdzajaca poprawnosc E-Maila */ function SprawdzEmail($email) { if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){ return false; } return true; } if(SprawdzEmail($_POST['email'])){ /* Tworzymy szkielet wysylanej wiadomosci */ $adresemail=$_POST['odbiorca']; $ip=$_SERVER['REMOTE_ADDR']; /* Wybierz kodowanie znaków usuwajac // */ $charset = 'iso-8859-2'; //$charset = 'utf-8'; $host=gethostbyaddr($_SERVER['REMOTE_ADDR']); $wiadomosc="Od: $_POST[nazwa] ($_POST[email]), tel: $_POST[tel]\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]"; $nadawca="From: $_POST[email]"; @mail($adresemail, "Formularz kontaktowy z www", "$wiadomosc", "$nadawca"); echo "<span style=\"color: #00D800; font-weight: bold; \">Dziekujemy, formularz zostal wyslany.</span>"; }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony adres E-Mail jest niepoprawny!!!</span>"; } }else{ echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Cofnij i wypelnij wszystkie pola formularza!!!</span>"; } ?> strona z formularzem http://www.firma-krzak.pl/kontakt.php Podobnie ze sprawdzaniem poprawności telefonu, obecnie jest w komentarzu Ma pozwalać tylko na cyfr 0-9, chciałem jeszcze dać format wpisu ale jest tyle wariantów.... Kod /*Sprawdzanie poprawnosci numeru telefonu - niedziala if ($tel == "" || !preg_match("/^[0-9]{9,11}$/i", $tel)) { $error .= "<span style=\"color: #FF0000; text-align: center;\">Nieprawidlowy numer telefonu</span><br>"; } */ czy jest poprawny i czy powinien się mieścić nad sprawdzaniem poprawności e-mail. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 18 Dołączył: 5.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Poczytaj o walidacji, pierwszy z góry wynik wujka googla klik, drugi klik Pozdrawiam EDIT
Pozdrawiam Ten post edytował pianta_d 12.01.2012, 00:16:37 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 9.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam Poczytaj o walidacji, pierwszy z góry wynik wujka googla klik, drugi klik Pozdrawiam EDIT
Pozdrawiam Dzięki ten kod sprawdza tel. Ale poprzedniego nie pisałem sam w całości i nie potrafię go prawidłowo zmodyfikować - ponad moje siły (ginę gdzieś na poziomie otwierania i zamykania {} funkcji) Mam obecnie tak, że przechodzi do nowej strony z komunikatem "nieprawidłowy numer" Dziękujemy email został wysłany" (jeżeli reszta pól była wpisana poprawnie). Chciałem skorzystać z innego kodu Kod function sprawdztel($tel){ $tel = preg_replace("/[^0-9\(\)]/","",$tel); if(!preg_match("/[0-9]{3}/",$tel) && !preg_match("/\([0-9]{2}\)[0-9]{7}/",$tel) && !preg_match("/\([0-9]{2}\)[0-9]{9}/",$tel)) { return true; } else { echo "<span style=\"color: #FF0000; text-align: center; font-weight: bold;\">Wprowadzony numer telefonu jest niepoprawny!!!</span>"; } po wyświetleniu strony mam: Parse error: syntax error, unexpected T_ELSE in /srv/home/q05121fb/public_html/zal.php on line 150 - jeżeli dobrze rozumie brak reakcji dla warunku "return true" (IMG:style_emoticons/default/questionmark.gif) Szkoda mojego czasu, za mało teorii. Jednak sie okazuje ze dodanie załacznika jest niezbędne równiez weryfikacja talafonu chociazby na poziomie czy to jest 9 cyfr Moze mi ktos z tym pomóc? Ten post edytował Miecho77 12.01.2012, 11:22:46 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 22:39 |