Перейти к содержимому

Реферальная программа Мегаплана


Отправка почты с сайта

#1 depositX7

depositX7
  • Пользователь
  • 3 сообщений
  • Репутация: 0
0

Отправлено 04 Июль 2012 - 15:52

Помогите подредактировать скрипт. Нужно убрать контрольный вопрос (два + два =) и проверку на корректность ввода E-mail. Никак чего то не получается.

<script language="javascript">
<!--
function sendform() {
if (document.forms[0].name.value == "") {
alert('Пожалуйста, введите Ваше имя');
document.forms[0].name.focus();
return false
}
if (document.forms[0].mail.value == "") {
alert('Пожалуйста, введите электронный адрес');
document.forms[0].mail.focus();
return false
}
if (!(/^[w.-]+@[w.-]+.w+$/i).test(document.forms[0].mail.value)) {
alert('Введите реальный электронный адрес!');
return false;
}
if (document.forms[0].message.value == "") {
alert('Пожалуйста, введите текст сообщения');
document.forms[0].message.focus();
return false
}
if (document.forms[0].q.value != 4) {
alert('Неверный ответ на контрольный вопрос!');
document.forms[0].q.focus();
return false
}
return true;
}
//-->
</script>
</head>
<body>
<?php
$FormAction = $_SERVER['PHP_SELF'];
if (isset($_POST['post']) || ($_POST['post'] == 'send')) {
if (!isset($_POST['q']) or ($_POST['q'] != 4)) {
echo "<script type="text/javascript">alert("Неверный ответ на контрольный вопрос!")</script>";
}
else {
$name = htmlspecialchars(trim($_POST['name']));
$mail = htmlspecialchars(trim($_POST['mail']));
$message = htmlspecialchars(trim($_POST['message']));
$box = " "; //email администратора, например: $box = "pupkin@vasy.ru"
$subject = "Вопрос с сайта";
$headers = "Content-type: text/plain; charset=UTF-8 rn"; // кодировка письма, например: charset=UTF-8
$headers .= "From: $name <$mail>rn";
$ret = 0;
$ret = mail ($box, $subject, $message, $headers);
if ($ret == 'true') {
echo "<script type="text/javascript">alert("Спасибо, ваше сообщение отправлено.")</script>";
}
else {
echo "<script type="text/javascript">alert("Извините, отправка не удалась. Попробуйте ещё раз.")</script>";
}
}
}
?>
<form onsubmit="return sendform();" action="<?php echo $FormAction; ?>" id="message" name="message" method="post">
<table width="300" cellspacing="5" style="border:solid 1px #999; margin:auto; background-color: #F6F6F6">
<tr>
<td align="center">Ваше имя
<input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td align="center">Ваш email
<input type="text" name="mail" id="mail" /></td>
</tr>
<tr>
<td align="center"><textarea name="message" id="message" cols="30" rows="5"></textarea></td>
</tr>
<tr>
<td align="center">два + два =
<input name="q" type="text" id="q" size="3" /></td>
</tr>
<tr>
<td align="center"><input type="submit" name="button" id="button" value="Отправить письмо" />
<input name="post" type="hidden" id="post" value="send" /></td>
</tr>
</table>
</form>

зы как-то так :)

 

 

Сообщение отредактировал surfer: 04 Июль 2012 - 18:59
код надо оформлять соответствующе!

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 04 Июль 2012 - 19:22

навскидку на колене так сказать, там есть ряд ошибок, получилось, хотя непонятно зачем убирать валидность электронки и каптчу, я бы по-другому сделал бы :)

<script language="javascript">
<!--
function sendform() {
if (document.forms[0].name.value == "") {
alert('Пожалуйста, введите Ваше имя');
document.forms[0].name.focus();
return false
}
if (document.forms[0].mail.value == "") {
alert('Пожалуйста, введите электронный адрес');
document.forms[0].mail.focus();
return false
}
if (document.forms[0].message.value == "") {
alert('Пожалуйста, введите текст сообщения');
document.forms[0].message.focus();
return false
}
return true;
}
//-->
</script>
</head>
<body>
<?php
$FormAction = $_SERVER['PHP_SELF'];
$name = htmlspecialchars(trim($_POST['name']));
$mail = htmlspecialchars(trim($_POST['mail']));
$message = htmlspecialchars(trim($_POST['message']));
$box = "pupkin@vasy.ru"; //email администратора, например: $box = "pupkin@vasy.ru"
$subject = "Вопрос с сайта";
$headers = "Content-type: text/plain; charset=UTF-8 rn"; // кодировка письма, например: charset=UTF-8
$headers .= "From: $name <$mail>rn";
if (mail ($box, $subject, $message, $headers)){
echo "<script type="text/javascript">alert("Спасибо, ваше сообщение отправлено.")</script>";
}
else {
echo "<script type="text/javascript">alert("Извините, отправка не удалась. Попробуйте ещё раз.")</script>";
}
?>
<form onsubmit="return sendform();" action="<?php echo $FormAction; ?>" id="message" name="message" method="post">
<table width="300" cellspacing="5" style="border:solid 1px #999; margin:auto; background-color: #F6F6F6">
<tr>
<td align="center">Ваше имя
<input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td align="center">Ваш email
<input type="text" name="mail" id="mail" /></td>
</tr>
<tr>
<td align="center"><textarea name="message" id="message" cols="30" rows="5"></textarea></td>
</tr>
<tr>
<td align="center"><input type="submit" name="button" id="button" value="Отправить письмо" />
<input name="post" type="hidden" id="post" value="send" /></td>
</tr>
</table>
</form>

  • 1

#3 depositX7

depositX7
    Topic Starter
  • Пользователь
  • 3 сообщений
  • Репутация: 0

Отправлено 04 Июль 2012 - 23:02

Спасибо.

хотя непонятно зачем убирать валидность электронки и каптчу, я бы по-другому сделал бы

Просто предполагается на выбор оставить телефон или мыло. А капча по Вашему действительно необходима?
  • 0

#4 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 04 Июль 2012 - 23:10

если хотите, чтоб вам спам слали пачками, то нет
  • 0

#5 depositX7

depositX7
    Topic Starter
  • Пользователь
  • 3 сообщений
  • Репутация: 0

Отправлено 05 Июль 2012 - 20:03

Сообщение отправляет, но при заходе на страницу, со скриптом, сразу выдает сообщение "Спасибо ваше сообщение отправлено". Что подправить?
  • 0

#6 romixtmb

romixtmb
  • Пользователь
  • 30 сообщений
  • Репутация: 0

Отправлено 15 Август 2012 - 17:35

условие где - то подправить нужно )
  • 0

#7 Внучара

Внучара
  • Пользователь
  • 11 сообщений
  • Репутация: 0

Отправлено 15 Август 2012 - 19:59

Сообщение отправляет, но при заходе на страницу, со скриптом, сразу выдает сообщение "Спасибо ваше сообщение отправлено". Что подправить?


<?php
if(isset($_POST['post']))
{

/* код */

}

?>
  • 0


Оформление форума – IPBSkins.ru