| |
|
|
| | Здравствуйте ! С Новым годом всех !
У меня на сайте установлена гостевая книга на mysql скаченная с этого сайта. В нее постоянно поступает спам - каждый день приходится удалять. Как Вы считаете, установка
kcaptcha поможет ? Если да, то подскажите, что и в какие файлы нужно дописать, чтобы ее подсоединить к гостевой книге (файлы kcaptcha я скачала). Желательно полный код, т.к. я с PHP не очень ...
Спасибо. | |
| |
|
|
| |
|
|
| |
для: Елена V
(04.01.2008 в 14:09)
| | | Как правильно замечает Хеопс, "Стоит только запретить ссылки в гостевой и спаммеры уходят оттуда!"... | |
| |
|
|
| |
|
|
| |
для: Елена V
(04.01.2008 в 14:09)
| | | Там же в KCAPTCHA есть и пример, что нужно дописать. | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 16:41)
| | | Можно просто сгенерировать случайное число ( с помощью ф-ци rand()) и проверять его при обработке формы, я так сделал. | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 16:59)
| | | ??? | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(04.01.2008 в 17:01)
| | | Вот часть кода:
Function show_form($s="") {
global $name,$email,$message,$kd,$kod;
if ($s){
echo "<div id='text1' style='position:absolute; overflow:hidden; left:350px; top:170px; width: 600px; z-index:5'><b>Ошибка:</b> $s<hr></div>";
$kd=rand (1111, 9999);}
?>
<div id="text1" style="position:absolute; overflow:hidden; left:350px; top:190px; width: 600px; z-index:5">
<table width=500 cellpadding=3 cellspacing=3>
<form action=questbook.php method="post">
<tr valign="middle">
<th colspan="2"> <div align="left"><b>Добавление сообщения:</b></div></th>
</tr>
<tr>
<Td width="27%"><div align="left">Ваше имя: <font color="#FF0000">*</font></div></TD>
<td width="72%"><div align="left">
<input type=text name=name size=34 value="<? echo $name; ?>">
</div></td>
</tr>
<tr>
<Td><div align="left">Ваш Email:</div></TD>
<td><div align="left">
<input type=text name=email size=34 value="<? echo $email; ?>">
</div></td>
</tr>
<tr>
<Td><div align="left">Введите код <b><? echo ($kd); ?></b>:</div></TD>
<td><div align="left">
<input type=text name=kod size=34 value="">
</div></td>
</tr>
<tr>
<Td colspan=2><div align="left">Текст сообщения: <font color="#FF0000">*</font><br>
<textarea cols=60 rows=10 name=message><? echo $message; ?></textarea>
</div></TD>
</tr>
<tr>
<td colspan=2><div align="left">
<input name="submit" type=submit value=" Добавить сообщение! " alt=Добавить сообщение>
</div></td>
</tr>
<tr>
<td height="35" colspan="2"><div align="left"><font size="-1">Поля, отмеченные звёздочкой
(<font color="#FF0000">*</font>) обязательны к заполнению.</font> </div></td>
</tr>
<input type=hidden name=a value=1>
<input type=hidden name=k value="<? echo $kd; ?>">
</form>
</table>
</div>
<p>
<?
exit();
}
// если сообщение еще не добавляется, выводим форму
if (!$a)
{$kd=rand (1111, 9999);
show_form();}
// если сообщение добавляется, проверяем форму на ошибки
if (!$name) show_form("Укажите Ваше имя!");
if (!$message) show_form("Вы не оставили сообщение!");
if ($k<>$kod)
{show_form("Неправильно указан код!");}
|
| |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 17:03)
| | | Как раздражает эта "секретность" где непопадя, на гостевую ставить такую хрень, ну это уже болезнь! Запретить сообщения со ссылками, самый лучший и безболезненный вариант для пользователей. | |
| |
|
|
| |
|
|
| |
для: sim5
(04.01.2008 в 17:07)
| | | Нет, ну запрет постинга ссылок тоже не очень-то хороший вариант. Лучше CAPTCHA именно при попытке запостить ссылку выдавать. | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 17:13)
| | | Согласен, в какой-то мере, но Гостевая, это скорее выяснение некоторых вопросов, а вот форум - тут да. У меня просто нервов не хватает на каждую мелочь вводить код, да еще бывает такую CAPTCH'U завернут, что хоть сам вокруг монитора крутись, чтобы понять что там написано.
Кстати, не знал о существовании службы, случайно прочитал на сайте 1С:
В настоящее время в Интернете функционируют службы, принимающие жалобы по поводу получения спама. Наиболее известная из них, к примеру - http://www.spamcop.net/. Если получатель письма направляет жалобу в одну из этих служб, почтовый сервер, отсылающий письмо, на некоторое время попадает в черный список. От серверов, находящихся в черных списках, многие почтовые сервера (до 30%) не принимают почту. Это может продолжаться до двух суток, а иногда и гораздо больше.
Принимая во внимание то, что почтовым сервером нашего хостинга пользуется большое число людей, попадание его в черный список, даже временно, очень нежелательно. В этом случае тысячи писем, в том числе, направленные на известные почтовые сервера mail.ru, yandex.ru, rambler.ru, не будут доставлены. | |
| |
|
|
| |
|
|
| |
для: sim5
(04.01.2008 в 17:50)
| | | Идея с ссылками понравилась больше всего. Вот код:
<?php
$url_exists = false;
//e-mail адреса
if(preg_match("/[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,5}/i", $text))
$url_exists = true;
//ссылки, нормальные
elseif(preg_match("#(http://|www)[0-9a-z-/\.\=_\?\#&]+#i", $text))
$url_exists = true;
//ссылки без http и www
elseif(preg_match("#[0-9a-z-/\._]+\.ru|com|net|info|biz|org#i", $text))
$url_exists = true;
if($url_exists == true)
$errors[] = "Незарегистрированные пользователи не могут вставлять url в текст сообщения";
?>
|
| |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 18:39)
| | | >//e-mail адреса
>if(preg_match("/[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,5}/i", $text))
Пользователи домена первого уровня museum обломятся :)
P.S. Так же и здесь:
>elseif(preg_match("#[0-9a-z-/\._]+\.ru|com|net|info|biz|org#i", $text))
Очень многие обломятся, нехорошо | |
| |
|
|
| |
|
|
| |
для: Faraon
(04.01.2008 в 19:11)
| | | Спасибо, я думал самый длинный домен - это | |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 19:15)
| | | Ради интереса можете к примеру ознакомиться
http://www.tigir.com/domains.htm | |
| |
|
|
| |
|
|
| |
для: Faraon
(04.01.2008 в 19:11)
| | | >>Очень многие обломятся, нехорошо
Тоже чувствую, что может иногда быть ложная тревога, но не могу подобрать реальные примеры. Поэтому и вынес этот код отдельно (чтобы можно было закомментировать). Например, какие варианты обломятся? Спаммеры тоже очень находчивы... | |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 19:21)
| | | >Ради интереса можете к примеру ознакомиться
Самые длинные - museum и travel. Поставить туда десяточку, чтобы было с запасом. Самое оно :) | |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 19:21)
| | | >Спаммеры тоже очень находчивы...
Если считать на счет спамерской уловки, то всегда можно послать спам как бы от любого домена и соответственно любого адреса.
Так же и через функцию mail того же самого PHP. :)
Поэтому принимать письма с не существующих адресов, это дело Почтового сервера. | |
| |
|
|
| |
|
|
| |
для: Faraon
(04.01.2008 в 19:36)
| | | >>Если считать на счет спамерской уловки, то всегда можно послать спам как бы от любого домена и соответственно любого адреса.
хм... На Softtime'е спама нет, хотя раньше они "выметали его ведрами". Может cheops подскажет волшебный код. или тут комплексный метод?
>>сегда можно послать спам как бы от любого домена и соответственно любого адреса
Секундочку, но тогда и адрес сайта будет другим. Причем тут mail, мы текст (переменная $text) сообщения гостевой/форума фильтруем? | |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 19:46)
| | | >Причем тут mail, мы текст (переменная $text) сообщения гостевой/форума фильтруем?
Я отвлекся от темы "Гостевая книга" и переключился на тему почтовых ящиков и начал рассуждать поэтому поводу. Пардон
>хм... На Softtime'е спама нет, хотя раньше они "выметали его ведрами".
Иногда боты проскальзывают :) | |
| |
|
|
| |
|
|
| |
для: Faraon
(04.01.2008 в 19:51)
| | | В 100% случаев (на моем опыте) спаммеры отправляют в гостевую/форум рекламный текст, содержащий url. Большинство таких объявлений - реклама порно-сайтов. В худшем случае - это будет гигантский фрагмент текста, содержащий различные словосочетания похабных слов (на поисковики работают). Мало того, что его долго приходится прокручивать, чтобы добраться до кнопки "удалить", так еще увидит Яндекс - есть риск попасть в бан (мое предположение). | |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 20:05)
| | | >Увидит Яндекс - есть риск попасть в бан (мое предположение).
Насчет поисковых систем ничего сказать не могу так как я не оптимизатор под поисковые системы, не SEO, но мне конечно мало бы понравилось когда на моем форуме завелись бы спамеры. Посетителей бы отпугивало только в раз :) | |
| |
|
|
| |
|
|
| |
для: Faraon
(04.01.2008 в 20:11)
| | | Они заводятся на любом сайте, где есть гостевая или форум, даже самом захолустном. Ваше неизвестность их не смутит.
Насчет отпугивало, не знаю. У меня стоит счетчик посещений тем. Так вот людей туда ходит немало (относительно общего кол-во посещающих). Может думают, что это администрация там какие-то акции выдумывает... | |
| |
|
|
| |
|
|
| |
для: antf
(04.01.2008 в 20:30)
| | | >Насчет отпугивало, не знаю
А я думаю если бы зашел на форум где очень много просто спама , а не информации, то практически сразу бы и ушел.
>Может думают, что это администрация там какие-то акции выдумывает...
Не знаю, по характеру постов сразу было бы понятно, что это не акция от администрации!
Вообщем то как не защищайся, все равно спамеры будут, либо вы с супер-крутой защитой отсеете многих спамеров, включая и большое количество нормальных пользователей, либо на каждом нормальном форуме есть модераторы, которые за этим делом следят. | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 17:03)
| | | Ну и код :)))))) Вы его хоть тестировали? :)) | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 17:10)
| | | Этот код вполне рабочий, а что вас так смущает? | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 17:45)
| | | 2Паша: Да нифига он не рабочий. Идет обращение к каким-то неопределенным переменным.
2sim5: да, согласен. Я сейчас тоже предлагаю пройти CAPTCHA только если будет замечено что-то подозрительное (ненормальная активность, подозрение на спам и проч.). | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 18:16)
| | | Не знаю какие там неопределённые переменный ты заметил, но эта гостевая у меня стабильно работает и не в одном экземпляре уже! | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 18:21)
| | | Вы этот нерабочий код еще и по другим скриптам распихали? | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 18:27)
| | | Ещё раз повторяю всё работает, то что там задействованы глобальные переменные то в этом минус, признаю!!! | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 18:32)
| | | > Ещё раз повторяю всё работает, то что там задействованы глобальные переменные то в этом минус, признаю!!!
Ну это у Вас работает. Для остальных это нерабочий код. Не сейчас, так позже будет | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 18:48)
| | | Вы бы чем критиковать подсказали бы как его модернезировать под более правильный код!!!! | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 18:51)
| | | См. сообщение sim5 04.01.2008 в 18:34
Полезно почитать http://ru2.php.net/manual/ru/language.variables.predefined.php | |
| |
|
|
| |
|
|
| |
для: Unkind
(04.01.2008 в 19:01)
| | | Ну про глобальные переменные я всё понял, а какие ещё недостатки, и ещё такой вопрос каков ваш опят в программировании(php)? | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 19:04)
| | | > какие ещё недостатки
Использование short tags ("<? ... ?>") нежелательно, так как они могут быть отключены. Лучше писать "<?php ... ?>".
И еще очень снижает читабельность такая вещь, как смешивание HTML и PHP-кода. Лучше выводить HTML-код средствами PHP.
> Пользователи домена первого уровня museum обломятся :)
Скорее наоборот нет :)) | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 18:21)
| | | register_globals = off, и уже труба вашей гостевой. | |
| |
|
|
| |
|
|
| |
для: sim5
(04.01.2008 в 18:27)
| | | А как можно использовать функцию без глобальных переменных? И отсуда второй вопрос - зачем тогда вообще нужны функции, если без глобальных переменных они не работают? | |
| |
|
|
| |
|
|
| |
для: Паша
(04.01.2008 в 18:34)
| | | Ну во первых, при выключенной опции, вы не сможете выполнить это:
if (!$a)....
if (!$name)....
потому как не будет таких переменных: $a, $name, а будет $_POST['a'], $_POST['name']...
Ну а об остальном не охота. | |
| |
|
|
| |
|
|
| |
для: Елена V
(04.01.2008 в 14:09)
| | | В общем-то капчу имеет смысл ставить на расширенные возможности ( к примеру тот же постинг ссылок в тексте сообщений) . Если запирать капчей ввод вообще любого текста - ударит по людям, а не по спаммерам. | |
| |
|
|