Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: капча в гостевой на файлах
 
 автор: ynota   (05.10.2010 в 14:04)   письмо автору
 
 

Друзья. Установил гостевую на файлах, скачанную у Вас на сайте. Всё хорошо работает. Только недавно какой то робот начал доставать сообщениями на английском языке. Пишет каждые 10 минут новое, а то и чаще. Пришлось на время закрыть гостевую. Пытаюсь поставить капчу гугловскую (рекапча). В PHP не рублю ни грамма. HTML "с грехом пополам", простенький сайт написал.
Если не трудно, дайте готовое решение. Имеется ввиду скрипт внедрения рекапчи (гугловской) в файл adrecc.php , ну и другие подробные инструкции. Или может есть какое то решение без капчей защитится от спамеров и спамботов именно для этой гостевой. Хотелось бы поменьше преград для пользователей. В основном посетители сайта народ немолодой, а прохождение гугловской капчи процесс довольно трудоёмкий даже для меня.

  Ответить  
 
 автор: sim5   (05.10.2010 в 14:31)   письмо автору
 
   для: ynota   (05.10.2010 в 14:04)
 

>а прохождение гугловской капчи процесс довольно трудоёмкий даже для меня

Ну а чего тогда пожилых пытать этим собираетесь?

  Ответить  
 
 автор: ynota   (05.10.2010 в 14:37)   письмо автору
 
   для: sim5   (05.10.2010 в 14:31)
 

А чем пытать, что б не до смерти, и чтоб робот не прошёл?

  Ответить  
 
 автор: sim5   (05.10.2010 в 14:47)   письмо автору
 
   для: ynota   (05.10.2010 в 14:37)
 

Что будет "смертельным" для ваших пользователей сказать трудно, а каптч всяких много, выбирайте несложную для своих старичков. В Гостевой запрещайте ввод информации, которая бы была интересна с точки зрения "рекламы" - ссылок.

  Ответить  
 
 автор: ynota   (05.10.2010 в 16:44)   письмо автору
 
   для: sim5   (05.10.2010 в 14:47)
 

Уважаемый, я написал вполне доступно, что в PHP не разбираюсь. У меня стоит скачанная с этого сайта гостевая на файлах. Я её маленько подшаманил( внешний вид) под свой сайт. Мне бы надо эту же гостевую , только с капчей. Уже прописанной. Я поставил гугловскую рекапчу, но видимо всё не так. На странице ответа она отображается, всё вводиться, когда щёлкаешь отправить появляется белый экран. И ещётеперь получилось две кнопки отправить. Одна, которая была, и теперь ещё та, что с капчей в сборе была.

  Ответить  
 
 автор: sim5   (05.10.2010 в 17:24)   письмо автору
 
   для: ynota   (05.10.2010 в 16:44)
 

Я прекрасно понял, что не разбираетесь, но что вы хотите, чтобы я скачивал эту гостевую, каптчу вами желаемую, прописывал все изменения и т.п..? Вы либо заказывайте оплачиваемую работу, либо спрашивайте о конкретных ваших ошибках - где, что и не так.

  Ответить  
 
 автор: Красная_шляпа   (05.10.2010 в 17:25)   письмо автору
 
   для: ynota   (05.10.2010 в 14:04)
 

Можно вместо каптчи просить ввести цифрами, число записанное словами


<?php

$string 
"";

$NumericArray = array();
for (
$i 0$i 4; ++$i) {
    
$NumericArray[] = mt_rand(09);
}

// тысячи
switch ($NumericArray[0]) {
    case 
1:
        
$string.= "одна";
        
$Ext "а";
        break;
    case 
2:
        
$string.= "две";
        
$Ext "и";
        break;
    case 
3:
        
$string.= "три";
        
$Ext "и";
        break;
    case 
4:
        
$string.= "четыре";
        
$Ext "и";
        break;
    case 
5:
        
$string.= "пять";
        
$Ext "ь";
        break;
    case 
6:
        
$string.= "шесть";
        
$Ext "ь";
        break;
    case 
7:
        
$string.= "семь";
        
$Ext "ь";
        break;
    case 
8:
        
$string.= "восемь";
        
$Ext "ь";
        break;
    case 
9:
        
$string.= "девять";
        
$Ext "ь";
        break;
}

if (
$string != "") {
    
$string.= " тысяч".$Ext;
}

// сотни

switch ($NumericArray[1]) {
    case 
1:
        
$string.= " сто";
        break;
    case 
2:
        
$string.= " двести";
        break;
    case 
3:
        
$string.= " триста";
        break;
    case 
4:
        
$string.= " четыреста";
        break;
    case 
5:
        
$string.= " пятьсот";
        break;
    case 
6:
        
$string.= " шестьсот";
        break;
    case 
7:
        
$string.= " семьмсот";
        break;
    case 
8:
        
$string.= " восемьсот";
        break;
    case 
9:
        
$string.= " девятьсот";
        break;
}

// десятки
$dec false;

// $NumericArray[2] = 1;

switch ($NumericArray[2]) {
    case 
1:
        
$dec true;
        break;
    case 
2:
        
$string.= " двадцать";
        break;
    case 
3:
        
$string.= " тридцать";
        break;
    case 
4:
        
$string.= " сорок";
        break;
    case 
5:
        
$string.= " пятьдесят";
        break;
    case 
6:
        
$string.= " шестьдесят";
        break;
    case 
7:
        
$string.= " семьдесят";
        break;
    case 
8:
        
$string.= " восемьдесят";
        break;
    case 
9:
        
$string.= " девяносто";
        break;
}

if (
$dec) {

switch (
$NumericArray[3]) {
    case 
1:
        
$string.= " одиннадцать";
        break;
    case 
2:
        
$string.= " двенадцать";
        break;
    case 
3:
        
$string.= " тринадцать";
        break;
    case 
4:
        
$string.= " четырнадцать";
        break;
    case 
5:
        
$string.= " пятнадцать";
        break;
    case 
6:
        
$string.= " шестнадцать";
        break;
    case 
7:
        
$string.= " семнадцать";
        break;
    case 
8:
        
$string.= " восемнадцать";
        break;
    case 
9:
        
$string.= " девятнадцать";
        break;
    case 
0:
        
$string.= " десять";

}

}

else {

switch (
$NumericArray[3]) {
    case 
1:
        
$string.= " один";
        break;
    case 
2:
        
$string.= " два";
        break;
    case 
3:
        
$string.= " три";
        break;
    case 
4:
        
$string.= " четыре";
        break;
    case 
5:
        
$string.= " пять";
        break;
    case 
6:
        
$string.= " шесть";
        break;
    case 
7:
        
$string.= " семь";
        break;
    case 
8:
        
$string.= " восемь";
        break;
    case 
9:
        
$string.= " девять";
        break;
    case 
0:
        
$string.= "";
}

}

(string) 
$chislo = (int) implode(""$NumericArray);

if (
$chislo == "0") {
    
$string "ноль";
}

var_dump($string$chislo);

?>

  Ответить  
 
 автор: sim5   (05.10.2010 в 17:27)   письмо автору
 
   для: Красная_шляпа   (05.10.2010 в 17:25)
 

Боже, а что так длинно-то? Да и боту такое сломать как два.... ;-)

  Ответить  
 
 автор: ynota   (05.10.2010 в 17:35)   письмо автору
 
   для: Красная_шляпа   (05.10.2010 в 17:25)
 

попробовать можно, только куда это всё всатвлять в фале?

  Ответить  
 
 автор: Красная_шляпа   (05.10.2010 в 17:41)   письмо автору
 
   для: ynota   (05.10.2010 в 17:35)
 


<?php

session_start
();

if (!empty(
$_POST) and $_POST["chislo"] == $_SESSION["chislo"]) {
echo 
"ПРАВИЛЬНО!<br>"
}

$string ""

$NumericArray = array(); 
for (
$i 0$i 4; ++$i) { 
    
$NumericArray[] = mt_rand(09); 


// тысячи 
switch ($NumericArray[0]) { 
    case 
1
        
$string.= "одна"
        
$Ext "а"
        break; 
    case 
2
        
$string.= "две"
        
$Ext "и"
        break; 
    case 
3
        
$string.= "три"
        
$Ext "и"
        break; 
    case 
4
        
$string.= "четыре"
        
$Ext "и"
        break; 
    case 
5
        
$string.= "пять"
        
$Ext "ь"
        break; 
    case 
6
        
$string.= "шесть"
        
$Ext "ь"
        break; 
    case 
7
        
$string.= "семь"
        
$Ext "ь"
        break; 
    case 
8
        
$string.= "восемь"
        
$Ext "ь"
        break; 
    case 
9
        
$string.= "девять"
        
$Ext "ь"
        break; 


if (
$string != "") { 
    
$string.= " тысяч".$Ext


// сотни 

switch ($NumericArray[1]) { 
    case 
1
        
$string.= " сто"
        break; 
    case 
2
        
$string.= " двести"
        break; 
    case 
3
        
$string.= " триста"
        break; 
    case 
4
        
$string.= " четыреста"
        break; 
    case 
5
        
$string.= " пятьсот"
        break; 
    case 
6
        
$string.= " шестьсот"
        break; 
    case 
7
        
$string.= " семьмсот"
        break; 
    case 
8
        
$string.= " восемьсот"
        break; 
    case 
9
        
$string.= " девятьсот"
        break; 


// десятки 
$dec false

// $NumericArray[2] = 1; 

switch ($NumericArray[2]) { 
    case 
1
        
$dec true
        break; 
    case 
2
        
$string.= " двадцать"
        break; 
    case 
3
        
$string.= " тридцать"
        break; 
    case 
4
        
$string.= " сорок"
        break; 
    case 
5
        
$string.= " пятьдесят"
        break; 
    case 
6
        
$string.= " шестьдесят"
        break; 
    case 
7
        
$string.= " семьдесят"
        break; 
    case 
8
        
$string.= " восемьдесят"
        break; 
    case 
9
        
$string.= " девяносто"
        break; 


if (
$dec) { 

switch (
$NumericArray[3]) { 
    case 
1
        
$string.= " одиннадцать"
        break; 
    case 
2
        
$string.= " двенадцать"
        break; 
    case 
3
        
$string.= " тринадцать"
        break; 
    case 
4
        
$string.= " четырнадцать"
        break; 
    case 
5
        
$string.= " пятнадцать"
        break; 
    case 
6
        
$string.= " шестнадцать"
        break; 
    case 
7
        
$string.= " семнадцать"
        break; 
    case 
8
        
$string.= " восемнадцать"
        break; 
    case 
9
        
$string.= " девятнадцать"
        break; 
    case 
0
        
$string.= " десять"





else { 

switch (
$NumericArray[3]) { 
    case 
1
        
$string.= " один"
        break; 
    case 
2
        
$string.= " два"
        break; 
    case 
3
        
$string.= " три"
        break; 
    case 
4
        
$string.= " четыре"
        break; 
    case 
5
        
$string.= " пять"
        break; 
    case 
6
        
$string.= " шесть"
        break; 
    case 
7
        
$string.= " семь"
        break; 
    case 
8
        
$string.= " восемь"
        break; 
    case 
9
        
$string.= " девять"
        break; 
    case 
0
        
$string.= ""




(string) 
$chislo = (int) implode(""$NumericArray); 

if (
$chislo == "0") { 
    
$string "ноль"
}

$_SESSION["chislo"] = $chislo;
echo 
"<form action={$_SERVER["PHP_SELF"]}>";
echo 
"<p>$string <input type=text name=chislo><input type=submit></p>":
echo 
"</form>";

?>

  Ответить  
 
 автор: sim5   (05.10.2010 в 17:44)   письмо автору
 
   для: Красная_шляпа   (05.10.2010 в 17:41)
 

И вам не стыдно за код свой, особливо за else ... switch?

  Ответить  
 
 автор: ynota   (06.10.2010 в 10:15)   письмо автору
 
   для: Красная_шляпа   (05.10.2010 в 17:41)
 

<?
 
// Включаем конфигурационный файл
include "config.php";
$error "";
$action $_POST["action"];
if (!empty(
$action)) 
{
    
$lenmsg strlen($_POST["msg"]);
    
$templen 0;
    
$temp strtok($_POST["msg"], " ");
    if (
strlen($_POST["msg"])>60) {    
        while (
$templen $lenmsg) { 
            if (
strlen($temp)>60) {
                
$action ""
                
$error $error."<LI>Текст сообщения содержит слишком много символов без пробелов\n";
                break;
            } else {
                
$templen $templen strlen($temp) + 1;
            }
            
$temp strtok(" ");            
        }       
    }

    
$name trim($_POST["name"]);
    
$msg trim($_POST["msg"]);
    
$email trim($_POST["email"]);
    
    if (empty(
$msg)) 
    {
        
$action ""
        
$error $error."<p><font size=-1 color=red>Вы не ввели сообщение</font>\n";
    }
    if (empty(
$name)) 
    {
        
$action ""
        
$error $error."<p><font size=-1 color=red>Вы не ввели имя</font></p>\n";
    }
    if(!empty(
$email))
    {
        if (!
preg_match("/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}$/i"$email))
        {
            
$action "";
            
        }
    }
   
    
    
$name substr($_POST["name"],0,32);
    
$name htmlspecialchars(stripslashes($name));
    
$city substr($_POST["city"],0,32);
    
$city htmlspecialchars(stripslashes($city));
    
$email substr($_POST["email"],0,32);
    
$email htmlspecialchars(stripslashes($email));
    
$url substr($_POST["url"],0,36);
    
$url htmlspecialchars(stripslashes($url));
    
$msg substr($msg,0,1024);
    
    
$url strtr($url"HTPF""htpf");
    if (
trim($url)!="") { 
        if (
strtolower((substr($url07))!="http://") && (strtolower(substr($url07))!="ftp://")) $url="http://".$url;
    }   


        
    
$search_bad_words = array("'хуй'si","'пизд'si","'ёб'si",
                            
"'сука'si","'суки'si","'дроч'si","'хуя'si","'ссуч'si");
    
$replace = array("*","*","*","*","*","*","*","*");
    
$msg preg_replace($search_bad_words,$replace,$msg);
    
$name preg_replace($search_bad_words,$replace,$name);
    
$city preg_replace($search_bad_words,$replace,$city);

    
$msg htmlspecialchars(stripslashes($msg));

    if (empty(
$error)) 
    {
        
$msg nl2br($msg);

        
$msg str_replace("[u]","<u>",$msg);
        
$msg str_replace("[U]","<u>",$msg);
        
$msg str_replace("","<i>",$msg);
        
$msg str_replace("[I]","<i>",$msg);
        
$msg str_replace("","<B>",$msg);
        
$msg str_replace("[B]","<B>",$msg);
        
$msg str_replace("","<SUB>",$msg);
        
$msg str_replace("[SUB]","<SUB>",$msg);
        
$msg str_replace("","<SUP>",$msg);
        
$msg str_replace("[SUP]","<SUP>",$msg);
        
$msg str_replace("[/u]","</u>",$msg);
        
$msg str_replace("[/U]","</u>",$msg);
        
$msg str_replace("
"
,"</i>",$msg);
        
$msg str_replace("[/I]","</i>",$msg);
        
$msg str_replace("
","</B>",$msg);
        
$msg str_replace("[/B]","</B>",$msg);
        
$msg str_replace("","</SUB>",$msg);
        
$msg str_replace("[/sub]","</SUB>",$msg);
        
$msg str_replace("","</SUP>",$msg);
        
$msg str_replace("[/sup]","</SUP>",$msg);
        
$msg eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg);
        
$msg str_replace("\n"," ",$msg);
        
$msg str_replace("\r"," ",$msg);

        
$file fopen("records/rec.".time(),"w");
        
fputs($file,$name."\n");
        
fputs($file,$city."\n");
        
fputs($file,$email."\n");
        
fputs($file,$url."\n");
        
fputs($file,$msg."\n");
        
fclose($file);
        
// Если $sendmail = true отправляем уведомление
        
if($sendmail)
        {
       
          
$thm "guestbook - a new post";
          
$msg "имя отправителя: $name\nтекст сообщения: $msg";
          
$headers .= "content-type: text/plain; charset=windows-1251\n";
          
mail($valmail$thm$msg,  $headers);
        }
        
// Если $catmessage = true органичиваем число
        // сообщений в гостевой книге $nummessage
        
if($catmessage)
        {
          
// Открываем директорию records 
          
$dir opendir("records"); 
          while((
$file readdir($dir))) 
          { 
            
// Помещаем названия файлов в массив $array_file[] 
            
if(is_file("records/$file")) $array_file[] = $file
          } 
          
// Проверяем количество файлов в директории 
          
if(count($array_file)>$nummessage
          { 
            
// Производим обратную сортировку массива 
            
@rsort($array_file); 
            
// Удаляем лишние файлы 
            
for($i=$nummessage$i<count($array_file); $i++) unlink("records/".$array_file[$i]); 
          } 
          
// Закрываем директорию 
          
closedir($dir); 
        }
        print 
"<HTML><HEAD>\n";
        print 
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
        print 
"</HEAD></HTML>\n";
    }
}

if (empty(
$action)) 
{
    
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" type="text/css" href="guestbook.css">
</head>
<body>
 <center><div id="basis">
    <div id="mainnav">
 <ul>
   <li><a title="Главная"href="http://loplosh.ru/" class="gla">Главная</a></li>
   <li><a title="Знакомство"href="http://loplosh.ru/catalog/" class="per">Знакомство</a></li>
   <li><a title="Статьи"href="http://loplosh.ru/Stati/" class="vto">Статьи</a></li>
   <li><a title="Видео"href="http://loplosh.ru/Video/" class="tre">Видео</a></li>
   <li><a title="Клиентам"href="http://loplosh.ru/Kupit_zakazat_LopLosh/" class ="chet">Клиентам</a></li>
   <li><a title="Задать вопрос"href="http://www.loplosh.ru/guest/" class="pyt">Задать вопрос</a></li>
 </ul></div>
<div id="shapca"></div>
<table border="0"  width="100%">    
    <tr align="right">
        <td>
            <a class=link href="../guest/" title="Вернуться в гостевую книгу"><img  border="0"src="http://loplosh.ru/guest/images/guest.jpg" title="Гостевая" alt="Гостевая"></img>Гостевая книга</a>&nbsp;&nbsp;
            <a class=link href="http://www.loplosh.ru" title="Вернуться на сайт"><img  border="0"src="http://loplosh.ru/guest/images/glav.jpg" title="Вернуться на сайт" alt="Главная"></img>Главная</a>
        </td>
        <td width="10%">&nbsp;</td>
    </tr>   
</table>
<form action=addreс.php method=post>
<input type=hidden name=action value=post>
<div class="table"><table  border="0"><tr valign="top"><td width="1%">&nbsp;</td><td>
<table border="0"  align="center" cellpadding="6" cellspacing="0">
    <tr valign="top">
        <td colspan="3" </div>
            <p class="pcolor2"><b>Добавление сообщения</b></p>
        </td>
    </tr>
    <tr>
        <td  width="50"height="30"><p class=ptd><b>Имя *</b></p></td>

        <td><input type=text name=name maxlength=32 size=25 value='<? echo $name?>'></td>
        <td rowspan="3" width="120">
            <p class=help>*Звёздочкой отмечены поля, обязательные для заполнения</p>
        </td>
    </tr>
    <tr>
        <td height="30"><p class=ptd><b>Город</b></p></td>
        <td><input type=text name=city maxlength=32 size=25 value='<? echo $city?>'></td>
    </tr>

    <tr>
        <td height="30"><p class=ptd><b><nobr>E-mail</nobr></b></p></td>
        <td><input type=text name=email size=25 maxlength=32 value='<? echo $email?>'></td>
    </tr>
    <tr>
        <td height="30"><p class=ptd><b>URL</b></p></td>
        <td colspan="2"><input type=text size=40 name=url maxlength=36 value='<? echo $url?>'></td>
    </tr>
    <tr>
        <td colspan="3" height="10"><nop></td>
    </tr>
  
    <tr>
        <td colspan="3">
            <p class=ptd><b><em>Сообщение *</em></b></p><br>
            <textarea cols=42 rows=5 name=msg><? echo $msg?></textarea>
        </td>
    </tr>   
    <tr>
        <td valign="middle"colspan="3"height="90">
           <input type="submit" value="Добавить">&nbsp;&nbsp;&nbsp; 
            <input type="submit" value="Отменить">

        </td>
    </tr>           
</table>
</td>
</form>

<td>
<table border="0" width="60" cellspacing="1" cellpadding="4">
    <tr align="left"><td><p class=ptext><u><i><b><nobr>Поддерживаемые  тэги:</nobr></b></i></u></td></tr>
    <tr><td><p class=ptext><nobr><b>Жирный</b></nobr></p></td></tr>
    <tr><td><p class=ptext><nobr><i>Наклонный</i></nobr></p></td></tr>
    <tr><td><p class=ptext><nobr>[u]<u>Подчеркнутый</u>[/u]</nobr></p></td></tr>
    <tr><td><p class=ptext><nobr><sup>Верхний индекс</sup></nobr></p></td></tr>
    <tr><td><p class=ptext><nobr><sub>Верхний индекс</sub></nobr></p></td></tr>
 <tr><td height="130"  valign="bottom"><?
    
if (!empty($error)) 
    {
        print 
"<font size=-1 color=red>Во время добавления записи произошли следующие ошибки: </font>\n";
        print 
"<p>\n";
        print 
$error;
        print 
"</p>\n";
    }
    
?>    <?
}
?>  </td></tr>
</table>
</td></tr></table></div>



<div id="footer">2009&nbsp;&copy;&nbsp;loplosh
 </div>
</center>
</body>
</html>

Вот файл страницы отправки сообщения. Если можно, впишите , чтобы работало.
Меня больше интересует, как всё привязать это к конкретному файлу.

  Ответить  
 
 автор: Красная_шляпа   (06.10.2010 в 11:40)   письмо автору
 
   для: ynota   (06.10.2010 в 10:15)
 



<? 

error_reporting
(E_ALL);  
session_start();

// Включаем конфигурационный файл 
include "config.php"
$error ""
$action = @$_POST["action"]; 
if (!empty(
$action))  

    
$lenmsg strlen($_POST["msg"]); 
    
$templen 0
    
$temp strtok($_POST["msg"], " "); 
    if (
strlen($_POST["msg"])>60) {     
        while (
$templen $lenmsg) {  
            if (
strlen($temp)>60) { 
                
$action "";  
                
$error $error."<LI>Текст сообщения содержит слишком много символов без пробелов\n"
                break; 
            } else { 
                
$templen $templen strlen($temp) + 1
            } 
            
$temp strtok(" ");             
        }        
    } 

    
$name trim($_POST["name"]); 
    
$msg trim($_POST["msg"]); 
    
$email trim($_POST["email"]); 
     
    if (
$_POST["chislo"] != $_SESSION["chislo"]) {
        
$action "";  
        
$error $error."<p><font size=-1 color=red>Spam-bot, fuck yuo self!!! This is sparta11111111111111111111111111111 11111111111111111111111111111111111 11111</font>\n"
    }

    if (empty(
$msg))  
    { 
        
$action "";  
        
$error $error."<p><font size=-1 color=red>Вы не ввели сообщение</font>\n"
    }

    if (empty(
$name))  
    { 
        
$action "";  
        
$error $error."<p><font size=-1 color=red>Вы не ввели имя</font></p>\n"
    } 

    if(!empty(
$email)) 
    { 
        if (!
preg_match("/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}$/i"$email)) 
        { 
            
$action ""
             
        } 
    } 
    
     
    
$name substr($_POST["name"],0,32); 
    
$name htmlspecialchars(stripslashes($name)); 
    
$city substr($_POST["city"],0,32); 
    
$city htmlspecialchars(stripslashes($city)); 
    
$email substr($_POST["email"],0,32); 
    
$email htmlspecialchars(stripslashes($email)); 
    
$url substr($_POST["url"],0,36); 
    
$url htmlspecialchars(stripslashes($url)); 
    
$msg substr($msg,0,1024); 
     
    
$url strtr($url"HTPF""htpf"); 

    if (
trim($url)!="") {  
        if (
strtolower((substr($url07))!="http://") && (strtolower(substr($url07))!="ftp://")) $url="http://".$url
    }    


         
    
$search_bad_words = array("'хуй'si","'пизд'si","'ёб'si"
                            
"'сука'si","'суки'si","'дроч'si","'хуя'si","'ссуч'si"); 
    
$replace = array("*","*","*","*","*","*","*","*"); 
    
$msg preg_replace($search_bad_words,$replace,$msg); 
    
$name preg_replace($search_bad_words,$replace,$name); 
    
$city preg_replace($search_bad_words,$replace,$city); 

    
$msg htmlspecialchars(stripslashes($msg)); 

    if (empty(
$error))  
    { 
        
$msg nl2br($msg); 

        
$msg str_replace("[u]","<u>",$msg); 
        
$msg str_replace("[U]","<u>",$msg); 
        
$msg str_replace("","<i>",$msg); 
        
$msg str_replace("","<i>",$msg); 
        
$msg str_replace("","<B>",$msg); 
        
$msg str_replace("","<B>",$msg); 
        
$msg str_replace("","<SUB>",$msg); 
        
$msg str_replace("","<SUB>",$msg); 
        
$msg str_replace("","<SUP>",$msg); 
        
$msg str_replace("","<SUP>",$msg); 
        
$msg str_replace("[/u]","</u>",$msg); 
        
$msg str_replace("[/U]","</u>",$msg); 
        
$msg str_replace("","</i>",$msg); 
        
$msg str_replace("
"
,"</i>",$msg); 
        
$msg str_replace("","</B>",$msg); 
        
$msg str_replace("
","</B>",$msg); 
        
$msg str_replace("","</SUB>",$msg); 
        
$msg str_replace("","</SUB>",$msg); 
        
$msg str_replace("","</SUP>",$msg); 
        
$msg str_replace("","</SUP>",$msg); 
        
$msg eregi_replace("(.*)\\[url\\](.*)\\[/url\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg); 
        
$msg str_replace("\n"," ",$msg); 
        
$msg str_replace("\r"," ",$msg); 

        
$file fopen("records/rec.".time(),"w"); 
        
fputs($file,$name."\n"); 
        
fputs($file,$city."\n"); 
        
fputs($file,$email."\n"); 
        
fputs($file,$url."\n"); 
        
fputs($file,$msg."\n"); 
        
fclose($file); 
        
// Если $sendmail = true отправляем уведомление 
        
if($sendmail
        { 
        
          
$thm "guestbook - a new post"
          
$msg "имя отправителя: $name\nтекст сообщения: $msg"
          
$headers .= "content-type: text/plain; charset=windows-1251\n"
          
mail($valmail$thm$msg,  $headers); 
        } 
        
// Если $catmessage = true органичиваем число 
        // сообщений в гостевой книге $nummessage 
        
if($catmessage
        { 
          
// Открываем директорию records  
          
$dir opendir("records");  
          while((
$file readdir($dir)))  
          {  
            
// Помещаем названия файлов в массив $array_file[]  
            
if(is_file("records/$file")) $array_file[] = $file;  
          }  
          
// Проверяем количество файлов в директории  
          
if(count($array_file)>$nummessage)  
          {  
            
// Производим обратную сортировку массива  
            
@rsort($array_file);  
            
// Удаляем лишние файлы  
            
for($i=$nummessage$i<count($array_file); $i++) unlink("records/".$array_file[$i]);  
          }  
          
// Закрываем директорию  
          
closedir($dir);  
        } 
        print 
"<HTML><HEAD>\n"
        print 
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n"
        print 
"</HEAD></HTML>\n"
    } 


if (empty(
$action))  

    
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<title></title> 
<link rel="StyleSheet" type="text/css" href="guestbook.css"> 
</head> 
<body> 
 <center><div id="basis"> 
    <div id="mainnav"> 
 <ul> 
   <li><a title="Главная"href="http://loplosh.ru/" class="gla">Главная</a></li> 
   <li><a title="Знакомство"href="http://loplosh.ru/catalog/" class="per">Знакомство</a></li> 
   <li><a title="Статьи"href="http://loplosh.ru/Stati/" class="vto">Статьи</a></li> 
   <li><a title="Видео"href="http://loplosh.ru/Video/" class="tre">Видео</a></li> 
   <li><a title="Клиентам"href="http://loplosh.ru/Kupit_zakazat_LopLosh/" class ="chet">Клиентам</a></li> 
   <li><a title="Задать вопрос"href="http://www.loplosh.ru/guest/" class="pyt">Задать вопрос</a></li> 
 </ul></div> 
<div id="shapca"></div> 
<table border="0"  width="100%">     
    <tr align="right"> 
        <td> 
            <a class=link href="../guest/" title="Вернуться в гостевую книгу"><img  border="0"src="http://loplosh.ru/guest/images/guest.jpg" title="Гостевая" alt="Гостевая"></img>Гостевая книга</a>&nbsp;&nbsp; 
            <a class=link href="http://www.loplosh.ru" title="Вернуться на сайт"><img  border="0"src="http://loplosh.ru/guest/images/glav.jpg" title="Вернуться на сайт" alt="Главная"></img>Главная</a> 
        </td> 
        <td width="10%">&nbsp;</td> 
    </tr>    
</table> 
<form action=addreс.php method=post> 
<input type=hidden name=action value=post> 
<div class="table"><table  border="0"><tr valign="top"><td width="1%">&nbsp;</td><td> 
<table border="0"  align="center" cellpadding="6" cellspacing="0"> 
    <tr valign="top"> 
        <td colspan="3" </div> 
            <p class="pcolor2"><b>Добавление сообщения</b></p> 
        </td> 
    </tr> 
    <tr> 
        <td  width="50"height="30"><p class=ptd><b>Имя *</b></p></td> 

        <td><input type=text name=name maxlength=32 size=25 value='<? echo $name?>'></td> 
        <td rowspan="3" width="120"> 
            <p class=help>*Звёздочкой отмечены поля, обязательные для заполнения</p> 
        </td> 
    </tr> 
    <tr> 
        <td height="30"><p class=ptd><b>Город</b></p></td> 
        <td><input type=text name=city maxlength=32 size=25 value='<? echo $city?>'></td> 
    </tr> 

    <tr> 
        <td height="30"><p class=ptd><b><nobr>E-mail</nobr></b></p></td> 
        <td><input type=text name=email size=25 maxlength=32 value='<? echo $email?>'></td> 
    </tr> 
    <tr> 
        <td height="30"><p class=ptd><b>URL</b></p></td> 
        <td colspan="2"><input type=text size=40 name=url maxlength=36 value='<? echo $url?>'></td> 
    </tr> 

<?php


$NumericArray 
= array();  
for (
$i 0$i 4; ++$i) {  
    
$NumericArray[] = mt_rand(09);  
}  

// тысячи  
switch ($NumericArray[0]) {  
    case 
1:  
        
$string.= "одна";  
        
$Ext "а";  
        break;  
    case 
2:  
        
$string.= "две";  
        
$Ext "и";  
        break;  
    case 
3:  
        
$string.= "три";  
        
$Ext "и";  
        break;  
    case 
4:  
        
$string.= "четыре";  
        
$Ext "и";  
        break;  
    case 
5:  
        
$string.= "пять";  
        
$Ext "ь";  
        break;  
    case 
6:  
        
$string.= "шесть";  
        
$Ext "ь";  
        break;  
    case 
7:  
        
$string.= "семь";  
        
$Ext "ь";  
        break;  
    case 
8:  
        
$string.= "восемь";  
        
$Ext "ь";  
        break;  
    case 
9:  
        
$string.= "девять";  
        
$Ext "ь";  
        break;  
}  

if (
$string != "") {  
    
$string.= " тысяч".$Ext;  
}  

// сотни  

switch ($NumericArray[1]) {  
    case 
1:  
        
$string.= " сто";  
        break;  
    case 
2:  
        
$string.= " двести";  
        break;  
    case 
3:  
        
$string.= " триста";  
        break;  
    case 
4:  
        
$string.= " четыреста";  
        break;  
    case 
5:  
        
$string.= " пятьсот";  
        break;  
    case 
6:  
        
$string.= " шестьсот";  
        break;  
    case 
7:  
        
$string.= " семьмсот";  
        break;  
    case 
8:  
        
$string.= " восемьсот";  
        break;  
    case 
9:  
        
$string.= " девятьсот";  
        break;  
}  

// десятки  
$dec false;  

// $NumericArray[2] = 1;  

switch ($NumericArray[2]) {  
    case 
1:  
        
$dec true;  
        break;  
    case 
2:  
        
$string.= " двадцать";  
        break;  
    case 
3:  
        
$string.= " тридцать";  
        break;  
    case 
4:  
        
$string.= " сорок";  
        break;  
    case 
5:  
        
$string.= " пятьдесят";  
        break;  
    case 
6:  
        
$string.= " шестьдесят";  
        break;  
    case 
7:  
        
$string.= " семьдесят";  
        break;  
    case 
8:  
        
$string.= " восемьдесят";  
        break;  
    case 
9:  
        
$string.= " девяносто";  
        break;  
}  

if (
$dec) {  

switch (
$NumericArray[3]) {  
    case 
1:  
        
$string.= " одиннадцать";  
        break;  
    case 
2:  
        
$string.= " двенадцать";  
        break;  
    case 
3:  
        
$string.= " тринадцать";  
        break;  
    case 
4:  
        
$string.= " четырнадцать";  
        break;  
    case 
5:  
        
$string.= " пятнадцать";  
        break;  
    case 
6:  
        
$string.= " шестнадцать";  
        break;  
    case 
7:  
        
$string.= " семнадцать";  
        break;  
    case 
8:  
        
$string.= " восемнадцать";  
        break;  
    case 
9:  
        
$string.= " девятнадцать";  
        break;  
    case 
0:  
        
$string.= " десять";  

}  

}  

else {  

switch (
$NumericArray[3]) {  
    case 
1:  
        
$string.= " один";  
        break;  
    case 
2:  
        
$string.= " два";  
        break;  
    case 
3:  
        
$string.= " три";  
        break;  
    case 
4:  
        
$string.= " четыре";  
        break;  
    case 
5:  
        
$string.= " пять";  
        break;  
    case 
6:  
        
$string.= " шесть";  
        break;  
    case 
7:  
        
$string.= " семь";  
        break;  
    case 
8:  
        
$string.= " восемь";  
        break;  
    case 
9:  
        
$string.= " девять";  
        break;  
    case 
0:  
        
$string.= "";  
}  

}  

(string) 
$chislo = (int) implode(""$NumericArray);  

if (
$chislo == "0") {  
    
$string "ноль";  


$_SESSION["chislo"] = $chislo


?>

    <tr><td><?php echo $string?></td><td colspan="2"><input name="chislo"></td></tr>

    <tr> 
        <td colspan="3" height="10"><nop></td> 
    </tr> 
   
    <tr> 
        <td colspan="3"> 
            <p class=ptd><b><em>Сообщение *</em></b></p><br> 
            <textarea cols=42 rows=5 name=msg><? echo $msg?></textarea> 
        </td> 
    </tr>    
    <tr> 
        <td valign="middle"colspan="3"height="90"> 
           <input type="submit" value="Добавить">&nbsp;&nbsp;&nbsp;  
            <input type="submit" value="Отменить"> 

        </td> 
    </tr>            
</table> 
</td> 
</form> 

<td> 
<table border="0" width="60" cellspacing="1" cellpadding="4"> 
    <tr align="left"><td><p class=ptext><u><i><b><nobr>Поддерживаемые  тэги:</nobr></b></i></u></td></tr> 
    <tr><td><p class=ptext><nobr><b>Жирный</b></nobr></p></td></tr> 
    <tr><td><p class=ptext><nobr><i>Наклонный</i></nobr></p></td></tr> 
    <tr><td><p class=ptext><nobr>[u]<u>Подчеркнутый</u>[/u]</nobr></p></td></tr> 
    <tr><td><p class=ptext><nobr><sup>Верхний индекс</sup></nobr></p></td></tr> 
    <tr><td><p class=ptext><nobr><sub>Верхний индекс</sub></nobr></p></td></tr> 
 <tr><td height="130"  valign="bottom"><? 
    
if (!empty($error))  
    { 
        print 
"<font size=-1 color=red>Во время добавления записи произошли следующие ошибки: </font>\n"
        print 
"<p>\n"
        print 
$error
        print 
"</p>\n"
    } 
    
?>    <? 

?>  </td></tr> 
</table> 
</td></tr></table></div> 



<div id="footer">2009&nbsp;&copy;&nbsp;loplosh 
 </div> 
</center> 
</body> 
</html>

  Ответить  
 
 автор: ynota   (06.10.2010 в 14:47)   письмо автору
 
   для: Красная_шляпа   (06.10.2010 в 11:40)
 

Чё то не работает, нажимаю "добавить" после написания сообщения, хоть ввожу число, хоть не воожу и выскакивает, " Ошибка, ссылка не работает"

  Ответить  
 
 автор: Красная_шляпа   (06.10.2010 в 14:53)   письмо автору
 
   для: ynota   (06.10.2010 в 14:47)
 

я тут вроде как не причем

  Ответить  
 
 автор: ynota   (06.10.2010 в 15:19)   письмо автору
 
   для: Красная_шляпа   (06.10.2010 в 14:53)
 

После добавления сообщения он должен открывать гостевую, уже с добавленным сообщением, было так. Это страница отправки сообщения. А сама гостевая на другой странице.А робот кстати всё равно работает. Сейчас только ещё пришло одно, пока ковырялся. Сейчас начнёт каждые 10 минут.

  Ответить  
 
 автор: Красная_шляпа   (06.10.2010 в 16:07)   письмо автору
 
   для: ynota   (06.10.2010 в 15:19)
 

выложи все файлы в архиве

  Ответить  
 
 автор: ynota   (06.10.2010 в 16:17)   письмо автору
16.4 Кб
 
   для: Красная_шляпа   (06.10.2010 в 16:07)
 

Выкладываю.

  Ответить  
 
 автор: Красная_шляпа   (06.10.2010 в 17:05)   письмо автору
17.9 Кб
 
   для: ynota   (06.10.2010 в 16:17)
 

забирай

  Ответить  
 
 автор: ynota   (06.10.2010 в 18:36)   письмо автору
 
   для: Красная_шляпа   (06.10.2010 в 17:05)
 

Премного благодарен!!! Пока всё работает. Робот затух.

  Ответить  
 
 автор: birch56   (06.11.2011 в 09:22)   письмо автору
 
   для: Красная_шляпа   (06.10.2010 в 17:05)
 

Доброе утро! У меня та же проблема. С прошлого воскресенья бот долбит и долбит. Сначала блокировала IP. потом включила модерацию и не более одного сообщения один раз в два часа. Так он с прокси, вероятно, заходит, потому что все IP разные. Помогите уж и мне, пожалуйста.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования