Witam
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')
{
if (isset($_POST['captcha_code'],$_SESSION['random_txt']) && md5($_POST['captcha_code']) == $_SESSION['random_txt']) {
unset($_POST['captcha_code'],$_SESSION['random_txt']); }
else
{
echo '<b>The entered code was wrong.</b><br>'; echo '<a href="java script:history.back()">Go Back</a>'; }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> div#container
{
width: 1004px;
position: relative;
margin-top: 0px;
margin-left: auto;
margin-right: auto;
text-align: left;
}
body
{
text-align: center;
margin: 0;
background-color: #C0C0C0;
color: #000000;
overflow-y: scroll;
}
<link rel="stylesheet" href="./wb.validation.css" 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;
}
<script type="text/javascript" src="./jquery-1.4.2.min.js"></script> <script type="text/javascript" src="./wb.validation.js"></script> <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 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ść\"'
});
});
<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)"> <textarea name="tresc" id="TextArea1" style="position:absolute;left:17px;top:131px;width:524px;height:88px;border:1px #C0C0C0 solid;font-family:Courier New;font-size:13px;z-index:0" rows="4" cols="61" tabindex="4"></textarea> <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;">
<font style="font-size:13px" color="#000000" face="verdana">Wpisz kod z obrazka
</font></div> <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;">
<font style="font-size:13px" color="#000000" face="verdana">Treść wiadomości
</font></div> <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;">
<font style="font-size:13px" color="#000000" face="verdana">Adres e-mail
</font></div> <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;">
<font style="font-size:13px" color="#000000" face="verdana">Imię i nazwisko / nazwa firmy
</font></div> <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;">
<font style="font-size:13px" color="#000000" face="verdana">Telefon
</font><font style="font-size:9.3px" color="#000000" face="verdana">(nie wymagany)
</font></div> <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()"> <input type="text" id="Captcha3Edit" style="position:absolute;left:130px;top:19px;width:114px;height:18px;border:1px #C0C0C0 solid;font-family:Verdana;font-size:13px;" name="captcha_code" value="" tabindex="5"></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;">
<img src="images/img0292.gif" id="Shape3" alt="" title="" style="border-width:0;width:0px;height:0px"></div> <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;">
<img src="images/img0293.gif" id="Shape4" alt="" title="" style="border-width:0;width:0px;height:0px"></div> <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;">
<img src="images/img0294.gif" id="Shape5" alt="" title="" style="border-width:0;width:0px;height:0px"></div> <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;">
<img src="images/img0295.gif" id="Shape6" alt="" title="" style="border-width:0;width:0px;height:0px"></div>
plik wyslij.php<?php
if (!empty($_POST['tresc']) && !empty($_POST['email'])) { $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]>";
@mail("mojemail@domena.pl","Wiadomość ze strony www!","$message","$header") or
die('Nie udało się wysłać wiadomości'); header('location:http://domena.pl/kontakt_OK.html'); }
?>
Ten post edytował MK2 6.08.2010, 17:41:47