Проверка формы отправки почты
Предположим, нужно проверить форму обратной связи перед отправкой данных на почтовый ящик. Форма содержит поля: имя отправителя, текст сообщения, почтовый ящик отправителя.
Код формы :
<html>
<head>
<title>Форма обратной связи</title>
</head>
<body>
<form method = “POST” action=””>
<table>
<tr>
<td>Отправитель:</td>
<td><input type="text" name="fio"/></td>
</tr>
<tr>
<td>Сообщение:</td>
<td><textarea name="msg"></textarea></td>
</tr>
<tr>
<td>Почтовый ящик: </td>
<td><input type="text" name="mail"/></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="send" value="Отправить"></td>
</tr>
</table>
</form>
</body>
</html>
Нужно проверить поля:
- поле «отправитель» нужно проверить на наличие записи и что в это поле введены только символьные знаки ([а-я]),
- поле «сообщение» проверить на наличие текста,
- поле «почтовый ящик» на корректность введенного адреса.
Для проверки нужно написать JavaScript функцию, которая будет вызываться при отправке формы. Можно воспользоваться событием onsubmit, при возникновении которого и будет вызываться функция обработки формы. Данная функция checkForm() будет возвращать значение true при успешной проверке и false при некорректном вводе заполняемой информации. Также в функцию виде параметра следует передавать ссылку на форму, через которую можно обращаться к элементам формы.
<script>
function checkForm(obj){
var return_value = true;
// регулярное выражение для проверки почтового ящика:
var reg_mail = /[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
// регулярное выражение для проверки отправителя
var reg_sender = /[a-z]+/i;
// заносим значение поля почтовый ящик в переменную mail
var mail = obj.mail.value;
// заносим значение поля отправитель в переменную sender
var sender = obj.fio.value;
// заносим значение поля сообщение в переменную msg
var msg = obj.msg.value;
// объявляем переменную, в которую будет заносится текст сообщения
var error_msg = "Некорректно заполнены поля: ";
//проверка поля отправитель
if(reg_sender.exec(sender) == null && sender =="")
{
error_msg += "Отправитель ";
return_value = false;
}
//проверка поля почтовый ящик
if(reg_mail.exec(mail) == null)
{
error_msg += "Почтовый ящик ";
return_value = false;
}
//проверка поля текст сообщения
if(msg == "")
{
error_msg += "Текст сообщения ";
return_value = false;
}
//проверка на наличие ошибок, если возникла ошибка, выводим текст сообщения
if(!return_value)
alert(error_msg);
return return_value;
}
</script>
Полностью код будет иметь следующий вид:
<html>
<head>
<title>Форма обратной связи</title>
<script>
function checkForm(obj){
var return_value = true;
// регулярное выражение для проверки почтового ящика:
var reg_mail = /[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
// регулярное выражение для проверки отправителя
var reg_sender = /[a-z]+/i;
// заносим значение поля почтовый ящик в переменную mail
var mail = obj.mail.value;
// заносим значение поля отправитель в переменную sender
var sender = obj.fio.value;
// заносим значение поля сообщение в переменную msg
var msg = obj.msg.value;
// объявляем переменную, в которую будет заносится текст сообщения
var error_msg = "Некорректно заполнены поля: ";
//проверка поля отправитель
if(reg_sender.exec(sender) == null && sender =="")
{
error_msg += "Отправитель ";
return_value = false;
}
//проверка поля почтовый ящик
if(reg_mail.exec(mail) == null)
{
error_msg += "Почтовый ящик ";
return_value = false;
}
//проверка поля текст сообщения
if(msg == "")
{
error_msg += "Текст сообщения ";
return_value = false;
}
//проверка на наличие ошибок, если возникла ошибка, выводим текст сообщения
if(!return_value)
alert(error_msg);
return return_value;
}
</script>
</head>
<body>
<form method = “POST” action=”#” onsubmit="return checkForm(this);">
<table>
<tr>
<td>Отправитель:</td>
<td><input type="text" name="fio"/></td>
</tr>
<tr>
<td>Сообщение:</td>
<td><textarea name="msg"></textarea></td>
</tr>
<tr>
<td>Почтовый ящик: </td>
<td><input type="text" name="mail"/></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="send" value="Отправить"></td>
</tr>
</table>
</form>
</body>
</html>
Для отправки почты используется функция PHP mail(). Файл mail.php будет содержать следующий код:
?php if (isset($_POST['send'])) { $to=$_POST['mail']; $tema="Message"; $content=$_POST['msg']; $from=$_POST['fio']; mail($to, $tema, $content, $from); } ?>
Дата добавления: 2016-03-04; просмотров: 890;