Ваш браузер неопознан или в настройках браузера выключена поддержка cookies' . "\n";
else if (time() - $_SESSION['visited'] < 120)
$state_msg .= '
Слишком частое оформление заказа (<120s). Засчитанное время успешного оформления '
. date("h:i:s", $_SESSION['visited']) ."\n";
if (!eregi('^[a-z0-9\._\-]+@[a-z0-9\.\-]+\.[a-z]{2,}$'
, $_POST["mail"], $array)) { # trim($_POST["mail"]) позволит поставить пробел перед mail'ом
$state_msg .= 'неверный формат (или не указан) e-mail' ."\n";
} else $mail = $array[0]; #присвоено
$re_part = '\s*-?\s*'; #часть рег.выражения
if (!preg_match('#^(\+?\d{1,4})'. $re_part
.'(\(\s*\d{3,5}\s*\)|\d{2,3})'. $re_part
.'((?:\d{2,3}'. $re_part .'){1,4})$#'
# не сильно много номеров тестил
#, но должно проходить от 5и значных номеров
# а платные номера они и федеральные бывают ;)
, trim($_POST["phone"]), $array)) {
$state_msg .= 'неверный формат (или не указан) телефон'
."\n";
} else $phone = $array[1] .' '. $array[2]
.' '. preg_replace('#[ -]+#', ' ', $array[3]) ;#присвоено
$name = trim(
preg_replace('/[^0-9A-Za-z \'\.А-яЁё-]+/u', '',
$_POST["name"])); # здесь не остаётся слэшей от magic_quotes , апостроф
# htmlspecialchars необходим если выводить в input и если там апострофы
# но имя может быть и мегабайт размером #присвоено
if (!empty($name)) $name = $_SESSION['name'] = preg_replace('# +#',' ', $name);
else $state_msg .= 'не указано Ваше имя' ."\n";
## здесь ещё проверку цифр с картинки надо вставлять
if (empty($state_msg)) {
$_SESSION['visited'] = time();
$tomail = "scor-insurance@yandex.ru";
$sub = "На сайте был сделан заказ Полиса";
$mes = "Стоимость Полиса составила $id (руб.) \n Данные по Заказчику: \n Имя: $name\n E-mail: $mail\n Телефон: $phone";
if(!($send = mail('xx@xx.xx',# надо изменить на @mail(
# чтобы небыло вывода ошибок в случае чего
$sub, $mes, "Content-type:text/plain; charset = utf-8"))) {
$fp = fopen('.htmailerrors', 'a');
flock($fp, LOCK_EX);
fwrite($fp, "\n\n[". date('Y.m.d H:i:s') ."]\n". $mes);
flock($fp, LOCK_UN);
fclose($fp);
}
}
} else $_SESSION['visited'] = time()-120;
#запись в сессию что показана форма
?>
тест
ВНИМАНИЕ! При заполнении формы произошла ошибка
'
."\n". $state_msg ."
\n";
if (isset($send)) {
echo ($send)
? 'Спасибо, Ваш заказ успешно отправлен!
'
: '
Произошла ошибка отправки заказа сервером
'
.'Отправляемые данные сохранены
и будут отосланы позже.'
;
echo "\nНаш менеджер свяжется с Вами в ближайшее время
\n\n\n";
exit;
}
?>
если страница с которой отправляется форма тоже в utf-8,
и письмо шлётся в кодировке utf-8 и mbstring-функции не использовать