![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 4
|
У меня есть форма отправки сообщения на сервер. Всё работает, но есть одна проблема. То есть она не проверяет поля. Как бы я не нажал на отправить и сообщение отправляется на сервер сразу. А мне надо чтобы проверяло все три поля и выводило сообщение - Сообщение не отправлено.
Где надо дописать мне здесь что бы проверяло незаполненные поля.
|
|
|||||
|
Регистрация: Jan 2009
Сообщений: 8
|
При чем тут PHP? Ты же проверку на стороне клиента планируешь. Ставь кнопке submit аттрибут disabled, обработчик событий для input полей и textarea (скажем, onChange), вызывай им функцию, которая проверяет длину value этих полей и при удовлетворительном результате ставит false для дизэйбла сабмит баттона. Короче, тут тебе JavaScript нужен.
|
|
|||||
|
mail.html
<html> <head> </head> <body> <div id="back_button"> </div> <table width="430" border="0"> <tr> <td height="50" align="center" colspan="2"><font color="blue"><div id="idStatus"></div></font></td> </tr> <form action="sendmail.php" method="post" onsubmit = "return checkForm(this)"> <tr> <td width="86">Ваше имя</td> <td width="286"><input type="text" name="name"></td> </tr> <tr> <td>Ваш e-mail</td> <td width="286"><input type="text" name="email"></td> </tr> <tr> <td> </td> <td width="286"> <p align="center">Сообщение</p> </td> </tr> <tr> <td> </td> <td width="286"><textarea name="message" cols="33" rows="10"></textarea></td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="Отправить" style="border: 1px solid #000000"></td> </tr> </form> </table> </body> <script type="text/javascript" src="mail.js"></script> </html> var query = location.search.substring(1);
var ansReg = "";
var ans = "";
ansReg = query.match(/no/g);
if (ansReg=="no") ans = "Сообщение не отправленно";
ansReg = query.match(/yes/g);
if (ansReg=="yes") ans = "Сообщение отправленно";
//alert(ans);
document.all.idStatus.innerHTML = ans;
function checkForm(form){
var outErrorStr = "";
var str = "";
var errorsName = 'Введите ваше имя';
var errorsMailfrom = 'Введите свой E-mail';
var errorsIncorrect = 'Заполните правильно Ваш E-mail';
var errorsMessage = 'Наберите сообщение!';
var send = 'Ваше письмо отправлено!';
str = form.name.value;
if (!str.match(/[^\s]/g)) outErrorStr =errorsName+"\n";
str = form.email.value;
if (!str.match(/[^\s]/g)) outErrorStr =outErrorStr +errorsMailfrom+"\n";
str = form.email.value;
if (!validateEmail(str)) outErrorStr =outErrorStr +errorsIncorrect +"\n";
str = form.message.value;
if (!str.match(/[^\s]/g)) outErrorStr =outErrorStr +errorsMessage;
if (outErrorStr!="") {
alert(outErrorStr);
return (false);
}
else{
return (true);
}
}
function validateEmail(str){
var lastIdx = -1;
var pattern = new RegExp("^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$");
var result = pattern.exec(str);
if (result!=null) {
result=true;
}else{
result=false;
}
return result;
}
<?php
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['message'])) {$message = $_POST['message'];}
$address = 'myMail@mail.ru';
$sub = "Письмо с сайта http://".$HTTP_HOST;
$mes = "Автор назвался: ".$name." \nУказал свой адрес: ".$email." \nСодержание письма: ".$message;
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:".$email);
if ($verify == 'true')
{
echo '<script type="text/javascript">window.location.href = "mail.html?var=yes";</script>';
}
else
{
echo '<script type="text/javascript">window.location.href = "mail.html?var=no";</script>';
}
?>
Последний раз редактировалось Alex Lexcuk; 30.01.2009 в 21:19. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 2
|
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\mail\send.php on line 12
У меня вот ткая Ошибка !!!!! Я думаю я что то ненастроил в php.ini Кто сталкивалс с такой проблемой подскажите пожалуйста решение !!!!!! Зарание Благодарю. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|