Старый 23.07.2009, 00:23   #1
Специалист
 
Регистрация: 18.01.2009
Сообщений: 169
Вес репутации: 131
Vell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личность
По умолчанию Защита от спама

Ребята програмисты кодеры, подскажите пожалуйста. Имеется гостевая книга, никакой защиты от спама нет, собсно вот она
PHP код:
<?php
if (!isset($_POST['add_mess'])){
$warning "";
session_register("warning");
}
elseif (isset(
$_POST['add_mess'])){
if (
$_POST['name'] == "" || $_POST['email'] == "" || $_POST['message'] == ""){
$warning $warning1;
session_register("warning");
}
elseif (
$_POST['name'] != "" && $_POST['email'] != "" && $_POST['message'] != ""){


if (
strlen($_POST['name']) > 30 || strlen($_POST['email']) > 40 || strlen($_POST['home']) > 40 || strlen($_POST['icq']) > 11 || strlen($_POST['message'] > 500)){
if (
strlen($_POST['name']) > 30){
$warning1 $warning2;
}
if (
strlen($_POST['email']) > 40){
$warning2 $warning3;
}
if (
strlen($_POST['home']) > 40){
$warning3 $warning4;
}
if (
strlen($_POST['icq']) > 11){
$warning4 $warning5;
}
if (
strlen($_POST['message'] > 500)){
$warning5 $warning6;
}

@
$warning "<center>".$warning1.$warning2.$warning3.$warning4.$warning5."</center>";
session_register("warning");
}
elseif (
strlen($_POST['name']) <= 30 && strlen($_POST['email']) <= 40 && strlen($_POST['home']) <= 40 && strlen($_POST['icq']) <= 11 && strlen($_POST['message'] <= 500)){

if (!
eregi('^[a-zA-Z0-9\-\.]+\@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$',$_POST['email'])){
$warning $warning7;
session_register("warning");
}
elseif (
eregi('^[a-zA-Z0-9\-\.]+\@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$',$_POST['email'])){
if (!
eregi('^[a-zA-Z0-9\-\.]+\.[a-zA-Z\.]+$',$_POST['home'])){
$warning $warning8;
session_register("warning");
}
elseif (
eregi('^[a-zA-Z0-9\-\.]+\.[a-zA-Z\.]+$',$_POST['home'])){
if (!
eregi('http://',$_POST['home'])){
    
$_POST['home'] = "http://".$_POST['home'];
}
}

if (!
eregi('^[0-9\-]',$_POST['icq'])){
$warning $warning9;
session_register("warning");
}
   
 if (
eregi('\-',$_POST['icq'])){
  
$_POST['icq'] = str_replace("-","",$_POST['icq']);
 }

$ip $_SERVER["REMOTE_ADDR"];
    
$f file($mess_file);
    
$f array_reverse($f);
    
$t time();
    
$lines count($f);
    if (
$lines 0){
    for (
$e 0$e $lines$e++){
    
$var explode ("::",$f[$e]);
    if(
$var[6]==$ip){
      if ((
$t-$var[7])<$intt){
       
$vv 1;
       if (
$int 1){
       
$set $int 60;
       
$word $seconds;
       }
       elseif (
$int 1){
       
$set $int;
       
$word $minutes;
       }
       elseif (
$int == 1){
       
$set $int;
       
$word $minutes2;
       }
       
$warning $warning10;
       
session_register("warning");
      }
    }
    } 
    }
    
    if (!isset(
$vv)){

    
$name_t htmlspecialchars($_POST['name']);
    
$email_t htmlspecialchars($_POST['email']);
    
$home_t htmlspecialchars($_POST['home']);
    
$icq_t htmlspecialchars($_POST['icq']);
    
$message_t htmlspecialchars($_POST['message']);
    
$date_t date("H:i:s d-m-Y");
    
$time time();
    
$data $name_t."::".$email_t."::".$home_t."::".$icq_t."::".$message_t."::".$date_t."::".$ip."::".$time."\n";
    
$fp fopen($mess_file,"a");
    
fwrite($fp,$data);
    
$warning $warning11;
    
session_register("warning");
    }
  }
}
}

}

$file file("templates/".$temp."/form.php");
$file1 count($file);
for (
$i 0;$i $file1;$i++){
$file[$i] = str_replace("%top_text%",$top_text,$file[$i]);
$file[$i] = str_replace("%name%",$name,$file[$i]);
$file[$i] = str_replace("%email%",$email,$file[$i]);
$file[$i] = str_replace("%icq%",$icq,$file[$i]);
$file[$i] = str_replace("%home%",$home,$file[$i]);
$file[$i] = str_replace("%not_than%",$not_than,$file[$i]);
$file[$i] = str_replace("%not_than2%",$not_than2,$file[$i]);
$file[$i] = str_replace("%not_than3%",$not_than3,$file[$i]);
$file[$i] = str_replace("%not_than4%",$not_than4,$file[$i]);
$file[$i] = str_replace("%message%",$message,$file[$i]);
$file[$i] = str_replace("%send%",$send,$file[$i]);
$file[$i] = str_replace("%warning%",$warning,$file[$i]);
$file[$i] = str_replace("%cool%","<a href=\"javascript:insertsmile('[:cool:]')\">".$smile_cool."</a>",$file[$i]);
$file[$i] = str_replace("%yo%","<a href=\"javascript:insertsmile('[:yo:]')\">".$smile_yo."</a>",$file[$i]);
$file[$i] = str_replace("%big%","<a href=\"javascript:insertsmile('[:big:]')\">".$smile_big."</a>",$file[$i]);
$file[$i] = str_replace("%dancin%","<a href=\"javascript:insertsmile('[:dancin:]')\">".$smile_dancin."</a>",$file[$i]);
$file[$i] = str_replace("%fu%","<a href=\"javascript:insertsmile('[:fu:]')\">".$smile_fu."</a>",$file[$i]);
$file[$i] = str_replace("%ok%","<a href=\"javascript:insertsmile('[:ok:]')\">".$smile_ok."</a>",$file[$i]);
$file[$i] = str_replace("%shit%","<a href=\"javascript:insertsmile('[:shit:]')\">".$smile_shit."</a>",$file[$i]);
$file[$i] = str_replace("%nono%","<a href=\"javascript:insertsmile('[:nono:]')\">".$smile_nono."</a>",$file[$i]);
echo 
$file[$i];
}

//НАЧАЛО ВЫВОДА ЗАПИСЕЙ

$ffile3 file("messages.dat");
$ffile3 array_reverse($ffile3);
$ffile4 count($ffile3);
if (
$ffile4 == 0){
}
elseif (
$ffile4 0){

if (
$ffile4 <= $per_page){
$pag_col 1;
}
elseif (
$ffile4 >$per_page){
$pag_col ceil($ffile4/$per_page);
$ee = ($pag_col*$per_page)-$ffile4;
}

if (!isset(
$_GET['pagen'])){
$page 1*$per_page;
}
elseif (isset(
$_GET['pagen'])){
$page $_GET['pagen']*$per_page;
if (
$_GET['pagen'] > $pag_col){
$_GET['pagen'] = 1;
@
header("Location:index.php?pagen=1");

}
if (!isset(
$_GET['pagen'])) $_GET['pagen'] = 1;
for (
$ii=($_GET['pagen']-1)*$per_page$ii<=(($_GET['pagen']*$per_page<$ffile4) ? $_GET['pagen']*$per_page-1$ffile4-1);$ii++) {
@list(
$_1,$_2,$_3,$_4,$_5,$_6) = explode("::",$ffile3[$ii]);
$ffile file("templates/".$temp."/mess.html");
for (
$iii 0;$iii count ($ffile);$iii++){
@
$ffile[$iii] = str_replace("%mess_from%",$mess_from,$ffile[$iii]);
@
$ffile[$iii] = str_replace("%name%","<b>".$_1."</b>",$ffile[$iii]);
@
$ffile[$iii] = str_replace("%message%",$_5,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:cool:]",$smile_cool,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:yo:]",$smile_yo,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:fu:]",$smile_fu,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:shit:]",$smile_shit,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:big:]",$smile_big,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:dancin:]",$smile_dancin,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:ok:]",$smile_ok,$ffile[$iii]);
@
$ffile[$iii] = str_replace("[:nono:]",$smile_nono,$ffile[$iii]);
@
$ffile[$iii] = str_replace("%copyright%","<a href=\"http://www.creativs.ru/\" target=\"_blank\">".$copyright."</a>",$ffile[$iii]);
@
$ffile[$iii] = str_replace("%home%","<a href=\"".$_3."\" target=\"_blank\">".$home_img."</a>",$ffile[$iii]);
@
$ffile[$iii] = str_replace("%email%","<a href=\"mailto:".$_2."\">".$mail_img."</a>",$ffile[$iii]);
@
$ffile[$iii] = str_replace("%icq%","<a href=\"http://www.icq.com/whitepages/about_me.php?uin=".$_4."\" target=\"_blank\">".$icq_img."</a>",$ffile[$iii]);
@
$ffile[$iii] = str_replace("%added%",$added,$ffile[$iii]);
@
$ffile[$iii] = str_replace("%date%",$_6,$ffile[$iii]);
echo 
$ffile[$iii];
}
}
//НАЧАЛО ВЫВОДА НАВИГАЦИИ ПО СТРАНИЦАМ
if (!isset($_GET['pagen']) || $_GET['pagen'] == 1){
$nn 1;
}
elseif (isset(
$_GET['pagen']) && $_GET['pagen'] > 1){
$nn $_GET['pagen']-1;
}

if (!isset(
$_GET['pagen'])){
$pp 2;
}

elseif(isset(
$_GET['pagen'])){
$pp $_GET['pagen']+1;
if (
$pp $pag_col){
$pp $pag_col;
}
}
echo 
$pages_text;
echo 
"<table><tr>";
if (
$pag_col 1){
 echo

      <td align=\"right\" valign=\"center\"><a href=\"index.php?pagen=1\"><<</a>&nbsp;&nbsp;
<a href=\"index.php?pagen="
.$nn."\"><</a>&nbsp;&nbsp;</td>";
}
      echo 
"<td align=\"center\" valign=\"top\">";
for (
$p 0;$p $pag_col;$p++){
if ((
$p 20) == 0) {
echo 
"<br>";
}
$n $p+1;
echo 
"<a href=\"index.php?pagen=".$n."\">[".$n."]</a>&nbsp;&nbsp;";
}
echo 
"</td>";
if (
$pag_col 1){
      echo
"<td align=\"left\" valign=\"center\"><a href=\"index.php?pagen=".$pp."\">></a>
&nbsp;&nbsp;<a href=\"index.php?pagen="
.$pag_col."\">>></a></td>";
}
echo 
"</tr>
       </table>"
;
echo 
"</center>";
}
if (
$pag_col == && $_GET['pagen'] > 1){
echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=index.php\">";
}
?>
форма ввода сообщения
PHP код:
<table bgcolor="white" width="638" height="203" align="center" cellspacing="1" cellpadding="1">
      <
tr>
        <
td bgcolor="white" width="632" height="199">      
           <
table width="604" height="197" align="center" cellpadding="1">
            <
form action="" method="post" name="form">
              <
tr>
                <
td colspan="3" align="center" valign="top"></td>
              </
tr>
              <
tr>
                <
td width="95" valign="top">%name%</td>
                <
td width="352" valign="top"><input type="text" id="name*" name="name" size="30" maxlenght="30"></td><td width="141" valign="top">&nbsp;</td>
              </
tr>
              <
tr>
                <
td valign="top">%email%</td><td valign="top"><input type="text" id="email*" name="email" size="30" maxlenght="40"></td><td valign="top">&nbsp;</td>
              </
tr>
              <
tr>
                <
td colspan="3" valign="top"></td>
              </
tr>
              
              <
tr>
                <
td>%message%</td><td><textarea name="message" cols="63" rows="5"></textarea></td><td valign="top" rowspan="2"><br>
                  </
td>
              </
tr>
              <
tr>
                <
td height="26" colspan="3" align="center">
                <
input type="submit" name="add_mess" value="%send%"></td></tr>
              <
tr>
                <
td height="20" colspan="2" align="center">%warning%</td>
              </
tr>
            </
form>
          </
table>
        </
td>
      </
tr>
</
table
Каким боком тут можно подключить капчу или иной способ защиты от спама?
Vell вне форума   Ответить с цитированием
Старый 23.07.2009, 00:26   #2
Эксперт
 
Регистрация: 23.09.2008
Адрес: Самара
Сообщений: 4,880
Вес репутации: 315
alex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущее
Отправить сообщение для alex063 с помощью ICQ
По умолчанию

Vell, если не помогут, постучитесь завтра с утречка в аську, за небольшую копеечку помогу...
__________________
Продвижение сайтов. Актуальное портфолио. Отзывы. ICQ: 407354474.
alex063 вне форума   Ответить с цитированием
Старый 23.07.2009, 00:33   #3
Специалист
 
Регистрация: 18.01.2009
Сообщений: 169
Вес репутации: 131
Vell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личность
По умолчанию

alex063, хорошо. ток не с утра а где нибудь ближе к вечеру.
Vell вне форума   Ответить с цитированием
Старый 23.07.2009, 00:34   #4
Эксперт
 
Регистрация: 23.09.2008
Адрес: Самара
Сообщений: 4,880
Вес репутации: 315
alex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущееalex063 - прекрасное будущее
Отправить сообщение для alex063 с помощью ICQ
По умолчанию

Vell, не сути))) Я имею ввиду не сейчас только.
__________________
Продвижение сайтов. Актуальное портфолио. Отзывы. ICQ: 407354474.
alex063 вне форума   Ответить с цитированием
Старый 23.07.2009, 02:16   #5
Специалист
 
Аватар для Emperor
 
Регистрация: 09.07.2008
Адрес: NET
Сообщений: 240
Вес репутации: 133
Emperor - весьма и весьма положительная личностьEmperor - весьма и весьма положительная личностьEmperor - весьма и весьма положительная личность
Отправить сообщение для Emperor с помощью ICQ Отправить сообщение для Emperor с помощью AIM Отправить сообщение для Emperor с помощью MSN Отправить сообщение для Emperor с помощью Yahoo
По умолчанию

погугли скрипт капчи и приделай его вон я вижу проверки на число символов, туда можешь причандалить все что угодно, проверка мейла уже есть, добавь проверку user_agent и referer, можно еще ставить фильтры на слова, проверка на повторы и много чего другого, все по потребностям
Emperor вне форума   Ответить с цитированием
Старый 23.07.2009, 02:27   #6
Специалист
 
Регистрация: 18.01.2009
Сообщений: 169
Вес репутации: 131
Vell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личностьVell - просто великолепная личность
По умолчанию

Emperor, если бы я еще все это понимал как положено. Капчу нагуглил, вставляется инклудом в форму, но какого то фига ентот код нифига в форме не обрабатывается.
Vell вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита форумов от спама mafiozru Деловое сотрудничество 12 09.12.2008 17:04
Как избавится от спама на форуме? Psihadelic Курилка 18 17.11.2008 10:52
Защита от спама. И иже с ним. Ulf Разработка и сопровождение сайтов 18 30.10.2008 06:26
Куплю: софт для спама MrJinx Деловое сотрудничество 11 29.03.2008 12:13
Рассылка СПАМа DmFX Вопросы по работе системы 0 05.01.2008 14:51


Часовой пояс GMT +3, время: 21:38.