BaikerZ (24.03.2013 / 12:30)
Всем доброго дня. Соорудил небольшой скриптик отправки юзерами сообщений на емейл, вобщем то все работает,но хочу поставить защиту от флуда и ничего не получается. С некоторых браузеров,к примеру напи
<?php
define('_IN_JOHNCMS', 1);
require('../incfiles/core.php');
$headmod = 'email';
require('../incfiles/head.php');
$lng_reg = core::load_lng('registration');
if (isset($_SESSION['ref']))
unset($_SESSION['ref']);
if (!$user_id){
$_SESSION['flood'] = $time;
}else{
mysql_query("UPDATE `users` SET `lastpost` = '" . $time . "'WHERE `id` = '" . $user_id . "' ");
}
$captcha = isset($_POST['captcha']) ? trim($_POST['captcha']) : NULL;
if(isset( $_POST [ 'go' ])){
$error = array();
// Проверка кода CAPTCHA
if (!$captcha || !isset($_SESSION['code']) || mb_strlen($captcha) < 4 || $captcha != $_SESSION['code']){
$error['captcha'] = $lng['error_wrong_captcha'];
unset($_SESSION['code']);
}else{
unset($_SESSION['code']);
$flood = functions::antiflood ();
if ( $flood )
$error[] = 'Флуд!' . ' ' . $flood . ' ' . 'секунд';
$to = $_POST [ 'to' ];
$ot = $_POST [ 'ot' ];
$subj = $_POST [ 'subj' ];
$mess = $_POST [ 'mess' ];
$subj = " $ot ";
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8 \r\n";
$headers .= "From: <site@briliantik.com> \r\n";
if(empty( $to ) or empty( $ot ) or empty( $subj ) or empty( $mess ) or empty( $captcha ) or empty( $headers ))
{
echo '<div class="rmenu" style="text-align: center"><b>Вернитесь и Заполните все поля</b>
<b>Письмо не отправлено</b></div>';
}else{
mail ( $to , $subj , $mess , $headers , "From:" . $ot );
echo '<div class="menu" style="text-align: center"><b>Ваше Письмо отправлено</b></div>';
}
}
}
if(!$user_id){
echo '<div class="phdr" align="center">Отправка Письма на Емейл</div>';
echo 'Ошибка';
}else{
echo '<div class="phdr" align="center">Отправка Письма на Емейл</div>';
echo '<div class="menu">';
echo '<form action="index.php" method="post">' .
'<b>Кому:</b>
<input type="text" name="to" />
' .
'<b>Ваше Имя и Фамилия:</b>
<input type="text" name="ot" />
' .
'<b>Текст:</b>
<textarea name="mess" value="' . $flood . '"></textarea>
' .
'
<big>' . $lng_reg['captcha'] . '</big>
' .
'<img src="../captcha.php?r=' . rand(1000, 9999) . '" alt="' . $lng_reg['captcha'] . '" />
' .
(isset($error['captcha']) ? '<span class="red"><small>' . $error['captcha'] . '</small></span>
' : '') .
'<input type="text" size="5" maxlength="5" name="captcha" ' . (isset($error['captcha']) ? ' style="background-color: #FFCCCC"' : '') . '/>
' .
'<small>' . $lng_reg['captcha_help'] . '</small>
' .
'<input type="submit" name="go" value="Отправить" /></form>';
echo '</div>';
}
require_once ("../incfiles/end.php");
?>