<?phpВставляется в свою форму как
//название сессии вашего сайта, искать в config.inc.php установленного сайта, генерируется автоматически при установке
session_name(’SN445farabbebc5’);
//запуск сессии
session_start();
if (isset($_SESSION[’nospam’])) {
unset($_SESSION[’nospam’]);
}
// Сгенерируем номер
$num = rand(’111111’,’999999’);
// Запишем номер в сессию
$_SESSION[’nospam’] = $num;
// Создадим рисунок размером 76x26
$img = imagecreate(’76’, ’26’);
// Зададим цвет бордюра
$color1 = imagecolorallocate($img, 0, 0, 0);
Зададим цвет символов
$color2 = imagecolorallocate($img, 0, 102, 203);
// Рисуем бордюр
imageline($img, 0, 0, 75, 0, $color1);
imageline($img, 0, 0, 0, 25 , $color1);
imageline($img, 0, 25, 75, 25 , $color1);
imageline($img, 75, 0, 75, 25 , $color1);
// Рисуем цифры
imagestring($img,5,12,5,$num,$color2);
// Выводим рисунок
header("Content-type: image/png");
imagepng($img);
?>
<IMG src='nospam.php' width='76' height='26' border='0'>
if ($_SESSION[’nospam’]==$_POST[’nospam’]) { //если введенный код и переменная сессии совпадают, то6. сохраняем сниппет, тестируем...
//обрабатываем другие поля формы, например проверяем правильность введенного емейла
//или заполненность обязательных полей..
//если все остальное ок - отправляем мейл
mail(...);
}
else {//введенный код и переменная сессии не совпадают
//выводим сообщение об ошибке, предлагаем пользователю ввести код заново
}
// [[ContactForm? &sendTo=`[email protected]`]] $email = (isset($sendTo))? $sendTo : '[(emailsender)]'; // enter "static" in order to use the static subject line $subject_type = "static"; $static_subject = "NEWSSS???".$modx->config['site_url']; // Otherwise use an array of possible subjects $subject_array[] = "Survey Info"; $subject_array[] = "Company Info"; $subject_array[] = "Other Info"; // Recipient ... add or remove lines as needed // Format (as few or as many as desired): // $recipient_array["бла-бла-бла"] = '[email protected]'; $recipient_array["Новости индустрии"] = "$email"; $recipient_array["Событие"] = "$email"; $recipient_array["Новости компании"] = "$email"; $recipient_array["Анонс"] = "$email"; $recipient_array["Другая какая-то новость"] = "$email"; // enter "static" in order to use the solo recipient $recipient_type = "static"; $static_recipient = "$email"; // Instructions $instructions = "Все поля обязательны для вдумчивого заполнения"; // Success Message $success = "Спасибо за ваше сообщение! С вами свяжутся наши агенты."; // Class for containing Success Message <p> $successClass = "style2"; // Failure <p> class $failClass = "err2"; // Empy Field failure message $emptyFields = "Мы же говорим - ВСЕ поля обязательные, ага."; // General failure message $generalFail = "У нас тут какая-то проблема, извините. Может, чуть попозже, хорошо?"; // Bad email failure message $failedEmail= (isset($_POST['email']))? $_POST['email']: ''; $emailFail = "Ой. Вы ввели что-то такое, что не похоже на адрес почты. Может еще разок?"; // Debug mode for testing $debug = false; // <----- END CONFIG -----> /////////////////////////////////// $SendMail = ''; if ($debug && $_POST) { $SendMail .= "POST variables from Document ID [*id*]:\n"; foreach ($_POST as $key => $value) { $SendMail .= "\t$key => $value\n"; } } $from= ''; $from_email= ''; $message= ''; $postSend= isset($_POST['send'])? $_POST['send']: 'false'; if ($postSend == 'true') { $to = ($recipient_type=="static") ? $static_recipient : $_POST['to']; $from = $_POST['name']; $from_email = $_POST['email']; $the_subject = ($subject_type=="static") ? "$static_subject" : $_POST['subject']; $message = $_POST['message']; if ( ($from == '')||($from_email == '')||($message == '') ) { $SendMail .= "<p class=\"$failClass\">$emptyFields</p>"; } elseif (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $from_email)) { $subject = $the_subject; $headers = "From: $from <$from_email>\r\n"; // clean out potential tomfoolery... $message = $modx->stripTags($message); $body = "Name: $from\nEmail: $from_email\nMessage:\n\n <br />" . $message; if (mail($to, $subject, $body, $headers)) { $SendMail .= "<p class=\"$successClass\">$success</p>"; $SendMail .= ($debug) ? "<p>$to\n$headers\n$subject\n$body</p>" : ''; $from=""; $from_email=""; $message=""; } else { $SendMail .= "<p class='$failClass'>$generalFail</p>"; $send = "false"; } } else { $SendMail .= "<p class='$failClass'>$emailFail</p>"; $send = "false"; } } if ($_SESSION['nospam']==$_POST['nospam']) mail(...); } else {//введенный код и переменная сессии не совпадают //выводим сообщение об ошибке, предлагаем пользователю ввести код заново } else { $SendMail .= "<p><b>$instructions</b></p>"; } $SendMail .=<<<EOD <h2>Сообщите нам о главном</h2> <div class=contact> <form method="post" name="EmailForm" id="EmailForm" action="[~[*id*]~]" style="border:0px; margin:0px;" > <fieldset> <input type="hidden" name="send" value="true" /> <label for="name">Ваше имя: <input type="text" name="name" id="name" size="30" value="$from" /></label><br><br> <label for="email">Ваш e-mail: <input type="text" name="email" id="email" size="30" value="$from_email" /></label><br><br> <label for="to">Вы сообщаете: </label> <select name="to" id="to"> <IMG src='nospam.php' width='76' height='26' border='0'> на картинке написано:<INPUT name='nospam' id='nospam' type='text' maxlength='6'>. EOD; foreach ($recipient_array as $key=>$value) { $SendMail .= "<option value=\"{$value}\">{$key}</option>\n"; } $SendMail .=<<<EOD </select><br> <label for="message"><br><br><br>(пишите сюда свою новость, скорее!)<br> <br> <textarea style="width:100%; height:350px;" name="message" id="message">$message</textarea> </label> <label> </label><br><br><input type="submit" value="Отправить" class="submit" /> </fieldset> </form> </div> EOD; return $SendMail;
// [[ContactForm? &sendTo=`[email protected]`]] $email = (isset($sendTo))? $sendTo : '[(emailsender)]'; // enter "static" in order to use the static subject line $subject_type = "static"; $static_subject = "NEWSSS???".$modx->config['site_url']; // Otherwise use an array of possible subjects $subject_array[] = "Survey Info"; $subject_array[] = "Company Info"; $subject_array[] = "Other Info"; // Recipient ... add or remove lines as needed // Format (as few or as many as desired): // $recipient_array["бла-бла-бла"] = '[email protected]'; $recipient_array["Новости индустрии"] = "$email"; $recipient_array["Событие"] = "$email"; $recipient_array["Новости компании"] = "$email"; $recipient_array["Анонс"] = "$email"; $recipient_array["Другая какая-то новость"] = "$email"; // enter "static" in order to use the solo recipient $recipient_type = "static"; $static_recipient = "$email"; // Instructions $instructions = "Все поля обязательны для вдумчивого заполнения"; // Success Message $success = "Спасибо за ваше сообщение! С вами свяжутся наши агенты."; // Class for containing Success Message <p> $successClass = "style2"; // Failure <p> class $failClass = "err2"; // Empy Field failure message $emptyFields = "Мы же говорим - ВСЕ поля обязательные, ага."; // General failure message $generalFail = "У нас тут какая-то проблема, извините. Может, чуть попозже, хорошо?"; // Bad email failure message $failedEmail= (isset($_POST['email']))? $_POST['email']: ''; $emailFail = "Ой. Вы ввели что-то такое, что не похоже на адрес почты. Может еще разок?"; // Debug mode for testing $debug = false; // <----- END CONFIG -----> /////////////////////////////////// $SendMail = ''; if ($debug && $_POST) { $SendMail .= "POST variables from Document ID [*id*]:\n"; foreach ($_POST as $key => $value) { $SendMail .= "\t$key => $value\n"; } } $from= ''; $from_email= ''; $message= ''; $postSend= isset($_POST['send'])? $_POST['send']: 'false'; if ($_SESSION['nospam']!=$_POST['nospam']) { $postSend = 'false'; $instructions .= "<br />Код, кстати, тоже надо правильно ввести!"; } if ($postSend == 'true') { $to = ($recipient_type=="static") ? $static_recipient : $_POST['to']; $from = $_POST['name']; $from_email = $_POST['email']; $the_subject = ($subject_type=="static") ? "$static_subject" : $_POST['subject']; $message = $_POST['message']; if ( ($from == '')||($from_email == '')||($message == '') ) { $SendMail .= "<p class=\"$failClass\">$emptyFields</p>"; } elseif (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $from_email)) { $subject = $the_subject; $headers = "From: $from <$from_email>\r\n"; // clean out potential tomfoolery... $message = $modx->stripTags($message); $body = "Name: $from\nEmail: $from_email\nMessage:\n\n <br />" . $message; if (mail($to, $subject, $body, $headers)) { $SendMail .= "<p class=\"$successClass\">$success</p>"; $SendMail .= ($debug) ? "<p>$to\n$headers\n$subject\n$body</p>" : ''; $from=""; $from_email=""; $message=""; } else { $SendMail .= "<p class='$failClass'>$generalFail</p>"; $send = "false"; } } else { $SendMail .= "<p class='$failClass'>$emailFail</p>"; $send = "false"; } } else { $SendMail .= "<p><b>$instructions</b></p>"; } $SendMail .=<<<EOD <h2>Сообщите нам о главном</h2> <div class=contact> <form method="post" name="EmailForm" id="EmailForm" action="[~[*id*]~]" style="border:0px; margin:0px;" > <fieldset> <input type="hidden" name="send" value="true" /> <label for="name">Ваше имя: <input type="text" name="name" id="name" size="30" value="$from" /></label><br><br> <label for="email">Ваш e-mail: <input type="text" name="email" id="email" size="30" value="$from_email" /></label><br><br> <label for="to">Вы сообщаете: </label> <select name="to" id="to"> <IMG src='nospam.php' width='76' height='26' border='0'> на картинке написано:<INPUT name='nospam' id='nospam' type='text' maxlength='6'>. EOD; foreach ($recipient_array as $key=>$value) { $SendMail .= "<option value=\"{$value}\">{$key}</option>\n"; } $SendMail .=<<<EOD </select><br> <label for="message"><br><br><br>(пишите сюда свою новость, скорее!)<br> <br> <textarea style="width:100%; height:350px;" name="message" id="message">$message</textarea> </label> <label> </label><br><br><input type="submit" value="Отправить" class="submit" /> </fieldset> </form> </div> EOD; return $SendMail;