[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка формы отправки на теги, пустоту полей
alerzo
Здравствуйте! Имеется вот такой php скрипт, обработчик формы отправки с сайта:
<?php

header('Content-Type: text/html; charset= utf-8');

/* Здесь проверяется существование переменных */

if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['comments'])) {$comments = $_POST['comments'];}

/* Сюда впишите свою эл. почту */
$address = "pochta@ya.ru";

/* А здесь прописывается текст сообщения, \n - перенос строки */
$mes = "Тема: заказ блокировки телефона \nE-mail: $email\nКомментарий: $comments";

/* А эта функция как раз занимается отправкой письма на указанный вами email */
$sub='Заказ блокировки'; //сабж
$email='Заказ блокировки<pochta@ya.ru>'; // от кого
$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:Заказ блокировки $email");

ini_set('short_open_tag', 'On');
header('Refresh: 3; URL=/');
?>
<!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=UTF-8">
<
meta http-equiv="refresh" content="3; url=/">
<
title>С вами свяжутся</title>
<
meta name="generator">
<
style type="text/css">
body
{

background: #22BFF7 url(images/zakaz.jpg) top -70% center no-repeat;

}

<script type="text/javascript">
setTimeout('location.replace("/")', 3000);
/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/
</script>
</
head>
</
body>
</
html>


сам html код:

  <form id="ContactForm" name="contact_form" action="contact.php" onsubmit="return validate_form ( );">
<div>
<div
class="wrapper"> <span>Ваш E-mail:</span>
<div
class="bg">
<input
type="email" name="email" id="email" required class="validate-email required input_field">
</div>
</div>
<div
class="textarea_box"> <span>Ваше сообщение:</span>
<div
class="bg">
<textarea
name="comments" cols="1" rows="1" required></textarea>
</div>
</div><br>
Поставьте галочку если Вы не робот<input type="checkbox" name="terms" value="Yes" ><br>
<input
type="submit" value="Отправить сообщение" class="submit_btn float_l"> <input type="reset" class="submit_btn float_r" value="Очистить поля"> </div>
</form>


Есть проблемы которые нужно исправить:
1. Очень часто на почту приходят сообщения пустого характера, или в поле сообщения спам (ссылки на сторонние сайты, теги и так далее)
2. Приходят просто пустые сообщения.

Помогите это исправить, сделать какие-то проверки в файле обработчике. Также к форме подключен JS который проверяет установку галочки защиты от роботов и проверку валидности почтового ящика.

function validate_form() {
var valid = checkmail();
if (!document.contact_form.terms.checked) {
alert("Отметьте галочку внизу формы что Вы не робот и почту ввели верно!");
valid = false;
};

return valid;

function checkmail() {
var value = document.getElementById('email').value;
var reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
if (!value.match(reg)) {
alert("Пожалуйста, введите свой настоящий e-mail");
document.getElementById('email').value = "";
return false;
}
return true
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.