function Form_Validator(theForm) { if (theForm.UserName.value=='') { alert('Пожалуйста, укажите Ваше имя.'); theForm.UserName.focus(); return false; } if (theForm.UserEmail.value=='') { alert('Вы должны указать свой email адрес.'); theForm.UserEmail.focus(); return false; } var a = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/; if (theForm.UserEmail.value.search(a)== -1) { alert('Введенный Вами email не корректен. Проверьте указанный Вами email адрес.'); theForm.UserEmail.focus(); return false; } if (theForm.Subject.value=='') { alert('Определитесь с темой Вашего письма.'); theForm.Subject.focus(); return false; } if (theForm.UserComments.value=='') { alert('Вы не ввели текст письма.'); theForm.UserComments.focus(); return false; } if (theForm.secretcode.value=='') { alert('Нужно перерисовать в поле формы цифры с картинки.'); theForm.secretcode.focus(); return false; } return true; }

Отправьте Ваше сообщение администрации сайта:




cod


formcontent; return $formcontent; } //Функция записи комментария в файл function WriteComment($username, $useremail, $subject, $usercomments, $secretcode, $userip, $folder, $action){ //session_start(); //Делаем доспупными внешние переменные //global $_s; global $turl; //Проверяем, отправлял ли посетитель комментарий для данной статьи в последние 15 минут if (empty($_COOKIE['spam'])) { $spam = 0; } else $spam = $_COOKIE['spam']; //Получаем информацию о значении кода из капчи if (isset($_SESSION['kod'])) { $kod = $_SESSION['kod']; } else $kod = 11; //Убираем слеш из названия папки $folder = substr($folder, 0, -1); //Установка начальных значений флагов $alert = ''; $name = 0; $email = 0; $sub = 0; $comment = 0; $kodcom = 0; $public = true; //Обработка информации об имени комментатора if (isset ($username)) { $username = trim($username); $username = strip_tags ($username); if (strlen($username) > 40) $username = substr ($username, 0, 40); if (strlen($username) > 0) $name = 1; } //Обработка информации об email комментатора if (isset ($useremail)) { //Регулярное выражение для проверки email на корректность $emailreg = "/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/"; $www = array(); $ttt = preg_match($emailreg , $useremail, $www); if ($ttt == 1) $email = 1; $useremail = trim($useremail); $useremail = strip_tags ($useremail); if (strlen($useremail) > 40) $useremail = substr ($useremail, 0, 40); } //Обработка информации о теме комментария if (isset ($subject)) { $subject = trim($subject); $subject = strip_tags ($subject); if (strlen($subject) > 40) $subject = substr ($subject, 0, 40); if (strlen($subject) > 0) $sub = 1; } //Обработка информации о тексте комментария if (isset ($usercomments)) { $pattern = '/[http:\/\/]*(www\.)*([a-zA-Zа-яА-Я0-9\-\_]*\.[a-zA-Zа-яА-Я]{2,4}[\/[a-zA-Zа-яА-Я0-9\-\_]*]*[\/[a-zA-Zа-яА-Я0-9\-\_]+\.[a-zA-Zа-яА-Я]{2,4}]*)/i'; $replace = "\${0}"; $usercomments = strip_tags($usercomments); $usercomments = str_replace("\r\n", "
", $usercomments); if (strlen($usercomments) > 4000) $usercomments = substr ($usercomments, 0, 4000); if (strlen($usercomments) > 0) $comment = 1; $usercomments = preg_replace($pattern, $replace, $usercomments, 1); } //Обработка информации о капче if (isset ($secretcode)) { if ($secretcode == $kod and $kod != 11) $kodcom = 1; } //Обработка информации об IP комментатора if (isset ($userip)) { $userip = strip_tags($userip); if (strlen($userip) > 15) $userip = substr ($userip, 0, 15); } //session_destroy(); //Если количество комментариев за 15 превышено, то комментарий не записываем и выдаем соответствующее сообщение if ($spam > 0) { $alert = '
Лимит на количество отправляемых сообщений исчерпан. Попробуйте снова через 15 минут.
'; } //Иначе, если полученные данные корректны, производим запись комментария elseif ($name and $email and $sub and $comment and $kodcom) { //Готовим содержимое файла с комментарием $text = "$username\n$useremail\n$subject\n$usercomments\n$userip\n\n0"; //Готовим название файла. Название соответствует текущей метке времени $tfile = time(); $t = "$tfile.txt"; //Если папка для комментариев к данному документу еще не существует, то создаем ее и сразу кладем туда файл .htaccess $diraccess = "../comment/comments/".$folder."_".$action; if (!file_exists($diraccess)) { mkdir ($diraccess); $htaccess = "Options -Indexes"; $dircom = "$diraccess/.htaccess"; $hdl = fopen ($dircom, 'w+'); flock ($hdl, LOCK_EX); rewind ($hdl); fwrite ($hdl, $htaccess); fflush($hdl); //Чтобы запись производилась быстрее flock($hdl, LOCK_UN); fclose($hdl); } //Записываем комментарий в файл $dircom = "$diraccess/$t"; $hdl = fopen ($dircom, 'w+'); flock ($hdl, LOCK_EX); rewind ($hdl); fwrite ($hdl, $text); fflush($hdl); //Чтобы запись производилась быстрее flock($hdl, LOCK_UN); fclose($hdl); //Прозводим запись в базу емайл-адресов $dircom = "../comment/emailbazacomments.txt"; $textemail = $useremail." ".$username."\n"; $hdl = fopen ($dircom, 'a'); flock ($hdl, LOCK_EX); rewind ($hdl); fwrite ($hdl, $textemail); fflush($hdl); //Чтобы запись производилась быстрее flock($hdl, LOCK_UN); fclose($hdl); //Отправка письма админу с запросом на подтвеждение $my_email='dsc@superfamily.ru'; $this_date=date("d.m.Y H:i:s",time()); //Определение текущей даты $headers = "From: $useremail <$useremail>\n"; $headers .= "X-Sender: from Site \n"; $headers .= "Content-Type: text/plain; charset=utf-8"; $subj=$subject; $tmp=" Сообщение с сайта $turl: Имя: $username Дата: $this_date Email отправителя: $useremail Тема сообщения: $subject Текст сообщения: $usercomments IP отправителя : $userip "; mail($my_email, $subj, $tmp, $headers); $alert = "
Ваше сообщение отправлено. Спасибо.
"; // Запись в лог полных данных о письме $hdl = fopen("maillog.txt", "a+"); flock($hdl, LOCK_EX); $str="Дата: ".$this_date." | IP: ".$_SERVER['REMOTE_ADDR']." | E-mail отправителя: ".$useremail." | Имя отправителя: ".$username." | "."Тема письма: ".$subject." | "."Текст письма: ".$usercomments."\n"; fwrite($hdl, $str); fflush($hdl); //Чтобы запись производилась быстрее flock($hdl, LOCK_UN); fclose($hdl); // Запись в лог данных о письме для рассылки $hdl = fopen("maillogsubscribe.txt", "a+"); flock($hdl, LOCK_EX); $str=$useremail." ".$username."\n"; fwrite($hdl, $str); fflush($hdl); //Чтобы запись производилась быстрее flock($hdl, LOCK_UN); fclose($hdl); //Противоспамные меры //Записываем в куки данные, что данный посетитель в последние 15 минут уже оставлял комментарий к текущему документу $spam++; setcookie ("spam",$spam,time()+60*15, "/$folder/$action.html"); } //Иначе, если данные, введенные пользователем не корректны, то комментарий в файл не записываем и готовим соответствующее сообщение для пользователя, которое и возвращается функцией else { $alert = "
Ваше сообщение не принято :

"; if ($name == 0) $alert = $alert."Вы не представились. Введите ваше имя и отправьте письмо заново.

"; if ($email == 0) $alert = $alert."Ваш email не корректен, он не принимается. Введите валидный адрес электронной почты и отправьте письмо заново.

"; if ($sub == 0) $alert = $alert."Тема сообщения не определена. Сформулируйте тему сообщения точнее и отправьте письмо заново.

"; if ($comment == 0) $alert = $alert."Пустые сообщения не принимаются. Сформулируйте сообщение точнее и отправьте заново.

"; if ($kodcom == 0) $alert = $alert."Проверочный код введен не верно. Введите цифры, показанные на картинке в поле 'Код' и отправьте письмо заново.

"; $alert = "
$alert
"; } return $alert; } //Запись комментария в файл //Если через POST пришли данные, то отравляем их в функцию записи комментария в файл if (isset($_POST['UserName']) and isset($_POST['UserEmail']) and isset($_POST['Subject']) and isset($_POST['UserComments']) and isset($_POST['secretcode'])) { $alert = WriteComment($_POST['UserName'], $_POST['UserEmail'], $_POST['Subject'], $_POST['UserComments'], $_POST['secretcode'], $_SERVER['REMOTE_ADDR'], $folder, $action); } //Иначе все данные устанавливаем в пустые значения else { $alert = ''; $_POST['UserName'] = ''; $_POST['UserEmail'] = ''; $_POST['Subject'] = ''; $_POST['UserComments'] = ''; } //Добавление формы публикации комментария //Если отсутствуют куки с данными о публикации комментариев данным посетителем, то устанавливаем переменную с данными о количестве этих комментариев в ноль if (empty($_COOKIE['spam'])) { $spam = 0; } //Иначе считываем ее из кук else $spam = $_COOKIE['spam']; //Если нет запрета на публикацию формы комментирования, то вызываем функцию ее вывода if ($spam < 1) { $formcontent = formContent($_POST['UserName'], $_POST['UserEmail'], $_POST['Subject'], $_POST['UserComments']); } require_once("$points/tpl/site_header.html"); echo $alert; echo $formcontent; $formcontent = ''; require_once("$points/tpl/site_footer.html"); ?>