Mam działający formularz kontaktowy, z którego po wpisaniu kodu z obrazka wysyłana jest wiadomość. Chciałem zmodyfikować go trochę w taki sposób, aby zmusić wysyłającego do wpisania pewnej ilości znaków w każdym polu:
imię: 5-40 znaków
email: 5-40 znaków
telefon: 0-30 znaków
treść: 15-5000 znaków
Po wprowadzeniu tych obostrzeń formularz niby działa prawidłowo. Jednak jak wysyłający wpisze poprawny kod z obrazka lecz nieprawidłową ilość znaków w dowolnym polu to:
1. wyskakuje okno informujące o złej ilości znaków w polu
2. po kliknięciu OK okno się zamyka a przeglądarka przechodzi do pliku wyslij.php
3. wysyłana jest wiadomość z niewystarczającymi danymi w polach
Jak należy zmienić kod aby przeglądarka nie przechodziła dalej dopóki nie zostaną wpisane w pola prawidłowe dane?
Chciałbym aby w przypadku pomyślnego wysłania wiadomości przeglądarka przechodziła do strony kontakt_ok.html a gdy wystąpi błąd to na stronę kontakt_error.html
Jako, że nie mam zbyt dużego doświadczenia w PHP proszę o konkretną odpowiedź! Dzięki z góry!
plik: kontakt.php
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { { } else { exit; } } ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <style type="text/css"> div#container { width: 1004px; position: relative; margin-top: 0px; margin-left: auto; margin-right: auto; text-align: left; } </style> <style type="text/css"> body { text-align: center; margin: 0; background-color: #C0C0C0; color: #000000; overflow-y: scroll; } </style> <link rel="stylesheet" href="./wb.validation.css" type="text/css"> <style type="text/css"> a.style1:link { color: #00008B; text-decoration: none; } a.style1:visited { color: #666666; text-decoration: none; } a.style1:active { color: #00008B; text-decoration: none; } a.style1:hover { color: #00008B; text-decoration: none; } </style> <script type="text/javascript"> <!-- function ValidateForm2(theForm) { if (theForm.TextArea1.value == "") { alert("W polu \"treść wiadomości\" wymagane jest od 15 do 5000 znaków!"); theForm.TextArea1.focus(); return false; } if (theForm.TextArea1.value.length < 15) { alert("W polu \"treść wiadomości\" wymagane jest od 15 do 5000 znaków!"); theForm.TextArea1.focus(); return false; } if (theForm.TextArea1.value.length > 5000) { alert("W polu \"treść wiadomości\" wymagane jest od 15 do 5000 znaków!"); theForm.TextArea1.focus(); return false; } if (theForm.Editbox2.value == "") { alert("W polu \"adres e-mail\" wymagane jest od 5 do 40 znaków!"); theForm.Editbox2.focus(); return false; } if (theForm.Editbox2.value.length < 5) { alert("W polu \"adres e-mail\" wymagane jest od 5 do 40 znaków!"); theForm.Editbox2.focus(); return false; } if (theForm.Editbox2.value.length > 40) { alert("W polu \"adres e-mail\" wymagane jest od 5 do 40 znaków!"); theForm.Editbox2.focus(); return false; } if (theForm.Editbox1.value == "") { alert("W polu \"imię i nazwisko\" wymagane jest od 5 do 40 znaków!"); theForm.Editbox1.focus(); return false; } if (theForm.Editbox1.value.length < 5) { alert("W polu \"imię i nazwisko\" wymagane jest od 5 do 40 znaków!"); theForm.Editbox1.focus(); return false; } if (theForm.Editbox1.value.length > 40) { alert("W polu \"imię i nazwisko\" wymagane jest od 5 do 40 znaków!"); theForm.Editbox1.focus(); return false; } if (theForm.Editbox3.value.length > 30) { alert("W polu \"Telefon\" dopuszczalne jest max 30 znaków!"); theForm.Editbox3.focus(); return false; } return true; } //--> </script> <script type="text/javascript"> $(document).ready(function() { $("#Form1").submit(function(event) { var isValid = $.validate.form(this); return isValid; }); $("#Captcha3Edit").validate( { required: true, type: 'ajax', param: 'captcha3_ajax.php', error_text: 'Wprowadź poprawny kod i kliknij przycisk \"Wyślij wiadomość\"' }); }); </script> </head> <body> <div id="container"> <div id="wb_Form1" style="position:absolute;left:0px;top:0px;width:559px;height:329px;z-index:12"> <form name="Form2" method="post" action="" enctype="application/x-www-form-urlencoded" id="Form1" onsubmit="return ValidateForm2(this)"> <div id="wb_Text9" style="margin:0;padding:0;position:absolute;left:17px;top:225px;width:145px;height :16px;text-align:left;z-index:1;"> <div id="wb_Text6" style="margin:0;padding:0;position:absolute;left:17px;top:115px;width:121px;height :16px;text-align:left;z-index:2;"> <input type="text" id="Editbox2" style="position:absolute;left:17px;top:85px;width:309px;height:18px;border:1px #C0C0C0 solid;font-family:Courier New;font-size:13px;z-index:3" name="email" value="" tabindex="2"> <div id="wb_Text4" style="margin:0;padding:0;position:absolute;left:17px;top:70px;width:143px;height: 16px;text-align:left;z-index:4;"> <input type="text" id="Editbox1" style="position:absolute;left:17px;top:41px;width:308px;height:18px;border:1px #C0C0C0 solid;font-family:Courier New;font-size:13px;z-index:5" name="imie" value="" tabindex="1"> <div id="wb_Text7" style="margin:0;padding:0;position:absolute;left:19px;top:24px;width:252px;height: 16px;text-align:left;z-index:6;"> <div id="wb_Text8" style="margin:0;padding:0;position:absolute;left:343px;top:70px;width:176px;height :16px;text-align:left;z-index:7;"> <input type="text" id="Editbox3" style="position:absolute;left:343px;top:84px;width:180px;height:18px;border:1px #C0C0C0 solid;font-family:Courier New;font-size:13px;z-index:8" name="telefon" value="" maxlength="30" tabindex="3"> <input type="submit" id="Button1" name="" value="Wyślij" style="position:absolute;left:390px;top:254px;width:152px;height:30px;font-family:Arial;font-weight:bold;font-size:13px;z-index:9" tabindex="6"> <div id="wb_Captcha3" style="margin:0;padding:0;position:absolute;left:17px;top:241px;width:234px;height :38px;text-align:left;z-index:10;"> <img src="captcha3.php" alt="Click for new image" title="Click for new image" style="cursor:pointer;width:120px;height:39px;" onclick="this.src='captcha3.php?'+Math.random()"> </form> </div> <div id="wb_Text1" style="margin:0;padding:0;position:absolute;left:801px;top:825px;width:193px;heigh t:12px;text-align:left;z-index:13;"> <div id="wb_Shape3" style="margin:0;padding:0;position:absolute;left:897px;top:1180px;width:0px;height :0px;text-align:center;z-index:14;"> <div id="wb_Shape4" style="margin:0;padding:0;position:absolute;left:768px;top:1028px;width:0px;height :0px;text-align:center;z-index:15;"> <div id="wb_Shape5" style="margin:0;padding:0;position:absolute;left:809px;top:1069px;width:0px;height :0px;text-align:center;z-index:16;"> <div id="wb_Shape6" style="margin:0;padding:0;position:absolute;left:776px;top:1065px;width:0px;height :0px;text-align:center;z-index:17;"> </div> </body> </html>
plik wyslij.php
<?php $message = "Treść wiadomości:\n$_POST[tresc]\n\nWysłał: $_POST[imie]\n\ne-mail: $_POST[email]\n\nTelefon: $_POST[telefon]"; $header = "From: $_POST[imie] <$_POST[email]>"; } ?>