Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Manlix Guestbook 1.5 Доработка

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообщем выручайте, задолбали боты, хочу вставить в сабж CAPTCHA - это хрень такая которая картинки с буковками и цифирками генерит, что б отличить человека от бота, нашёл неплохой скрипт здесь (понимаю что не 100%-ная защита от распознавания, но если кириллический шрифт нормальный поставить шансы распозновалки бота стремятся к нулю ) , но так и не смог заставить работать его в Manlix Guestbook, с шаблонами никаких проблем, всё врезалось красиво, а вот куда вставить эту хреновину, что б сессию открыть не пойму:

Цитата:
<?php  
   session_start();
   if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
      // Insert you code for processing the form here
   } else {
      // Insert your code for showing an error message here
   }
?>

 
Чуть не забыл, гостевуха лежит здесь: http://www.manlix.ru/zipped/manlix_guestbook_v1_5.zip
 
P.S.
Никто не встречал бесплатные аналоги этого скрипта?

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 20:46 21-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
Никто не встречал бесплатные аналоги этого скрипта?


Цитата:
Q: Can I get it for free somehow?
A: Yes, you can. The condition is: you must place a link to us near each appearance of tEABAG_3D CAPTCHA on your site.

 

Цитата:
а вот куда вставить эту хреновину, что б сессию открыть не пойму:

что значит "куда"? там, где обрабатываются полученные из формы данные.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:54 21-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Насчёт tEABAG_3D CAPTCHA вот что написано здесь

Цитата:
This is the first real commercial version.

Я им мыло кинул, но ни ответа ни привета, похоже решили её только продавать

Цитата:
там, где обрабатываются полученные из формы данные.

Дык я поэтому и создал тему в В помощь вебмастеру , потому что могу скрипт поставить и настроить ну и чуть что разобрать простенький скрипт , а тут целая чужая гостевуха, ужас
 
Интуитивно я понимаю что это хрень должна быть там где обрабатываются данные, но вот где конкретно.
Час наверно колупался, либо ошибка
Цитата:
Parse error: parse error, unexpected $end in index.php on line 237
либо ноль внимания на CAPTCHA со стороны гостевухи
 
Так что если у тебя будет время посмотри, плиз

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 00:22 22-12-2006 | Исправлено: Pasha13, 00:29 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
Так что если у тебя будет время посмотри,

мне не хочется разбираться в чужом коде.
простейшую защиту без картинок можно сделать так..  
<input type='hidden' id='ok' name='ok' value='notok'>
 
<script>
document.getElementById('ok').value='ok'
</script>
ну и все зависит от того, как "заполняют" форму для спама.. если заходят браузером и далее запоминают параметры полей, то не поможет.. но и там можно извратиться..
но обычно же скриптом анализируют форму и такой ньанс не вылавливается.. пока что, поэтому в скрипте просто смотришь значение переменной и все.. если notok - послать
 
 
насчет 3d captcha.. не понимаю, чего они продают, так как такое можно написать посидев. проблема только со скоростью, но и для этого можно ее сделать как модуль для php
 
 

Цитата:
Parse error: parse error, unexpected $end in index.php on line 237

да потому что ты открыл скобку {  и не закрыл ее.
синтаксис php знаешь вообще?
 
 
вот, кстати, прикольные реализации.. проблема в том, технически можно сломать на основе корреляции между разными кадрами.. а ты не страдай фигней и не думай о 3d - смысла в ней пока нет, тем более на твоем форуме
http://gifs.hu/phpclasses/index.php?m=captcha2
http://gifs.hu/phpclasses/index.php?m=captcha

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:28 22-12-2006 | Исправлено: Cheery, 00:33 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
 да потому что ты открыл скобку {  и не закрыл ее.
синтаксис php знаешь вообще?

Вот дурак.
 
Теперь captcha просто игнорируется, как будто-то её нет.
Хочется защиту с картинками , я там красивый шрифт подобрал.

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 00:45 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
Теперь captcha просто игнорируется, как будто-то её нет.

я не телепат. и картинки от той части кода, что ты показал, выводиться не будут.
только отсюда будут
<img src="CaptchaSecurityImages.php" />
это раз.. второе - когда ошибка (код неправильный), то что у тебя происходит?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:48 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 вот, кстати, прикольные реализации..

Спасибо, действительно интересная вещь, вот бы знаний набраться и прикрутить.
Почему ж гостевуха не хочет проверять поле
<input id="security_code" name="security_code" type="text" />  
при нажатии этой кнопки  
<input type="submit" name="submit" value="Submit" />
Чувствую что что-то элементарное упустил, а вот понять что....
 

Цитата:
тем более на твоем форуме  

у меня гостевуха с посещением меньше среднего, в принципе несложно флудеров раз в неделю руками давить, просто хоцца опыта преобрести, кстати с чего начать изучение php для самых маленьких , а то видишь как оказалось даже с синтаксисом у меня грабли

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 00:57 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
Чувствую что что-то элементарное упустил, а вот понять что....  

покажи как вставил проверку.. я не телепат..


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:59 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
В шаблон form.inc.html (\gb\inc\templates\) вставил вот это:
 
<td colspan="2" align="center">
<img src="sec-img.php?width=100&height=40&characters=3" alt="captcha" />Введите код:  
<input name="security_code" type="text" id="security_code" lang="ru" size="6" maxlength="4" /></td></tr>
<tr><td colspan="2" align="center"><input name="submit" type=submit class=submit style="cursor: hand" value="Submit">
 
Ну и в index.php (сначала хотел в form.inc.html) запихнул это:

Цитата:
session_start();
   if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
      // Insert you code for processing the form here
   } else {
      // Insert your code for showing an error message here
   }

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 01:13 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13
ну и как оно, по твоему, должно реагировать на неправильный код?
 
плюс вставлять нужно в том месте, где начинается обработка данных при POSTе формы.. иначе будет посылать постоянно при запросе страницы (если форма отправки также генерится той же страницей)

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:15 22-12-2006 | Исправлено: Cheery, 01:16 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
 ну и как оно, по твоему, должно реагировать на неправильный код?

Понял, опять лопухнулся.
 
Прокоменьть для меня лопуха скрипт, вот как я это вижу:

Код:
<?php
session_start(); //начать сессию
 
   if (($_SESSION [security_code] == $_POST[security_code])
            //значение 'security_code' должно равнятся значению вытянутому из POST формы ввода

 
   && (!empty($_SESSION[security_code])) ) //и недолжно быть пустым
 
          {//Тут код исполняющийся если всё правильно}
 
   else {//Иначе показывается сообщение о неверном коде, только вот как блокировать добавление поста в гостевуху?}
  else {//если правильно понял, то здесь в случае ошибки происходит показ формы для очередного ввода.
?>
                                               
    <form>...</form> // здесь html-код формы и показа картинки
 
<?php
    }
?>

 
Добился некоторого продвижения, теперь выводит текст что код неправильный (с warning-ами Warning: Cannot modify header information - headers already sent by) но всё равно добавляет сообщение , если код верный, то просто нормально.
 
Вообщем посмотри пожалуйста, без этого я ничего не заведу :
там 12kb всего, положил сюда

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 04:04 22-12-2006 | Исправлено: Pasha13, 04:19 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13
эх, млин...
 
 
session_start(); сразу в начале страницы
и это:

Код:
 
elseif(($_SESSION [security_code] != $_POST[security_code]) && (!empty($_SESSION[security_code])))
$manlix['other']['error']="Неправильный код с картинки";

сразу после  

Код:
        elseif(is_array($ban=Banlist($_SERVER['REMOTE_ADDR'])))
        $manlix['other']['error']=sprintf($manlix['error']['ban'],$ban[0],$ban[1]);

не проверял, но что то в этом роде

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:13 22-12-2006 | Исправлено: Cheery, 04:20 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Работает , спасибо огромное
 
Правда когда вставил это

Код:
 elseif(($_SESSION [security_code] != $_POST[security_code]) && (!empty($_SESSION[security_code])))
$manlix['other']['error']="Неправильный код с картинки";
 

 
Выскакивали предупреждения о неопределенной константе:

Цитата:
Notice: Use of undefined constant security_code - assumed 'security_code'

 
Сделал так:

Код:
if( isset($_POST[submit])) {
            if(($_SESSION[security_code] == $_POST[security_code]) && (!empty($_SESSION[security_code])) ) {
                } else {
                $manlix[other][error]="Неправильный код картинки";
              }
                                        }

 
предупреждения исчезли
 
Правда небольшая проблемка всё же остаётся, при неверном вводе картинка не меняется, а это фигово бот сможет многократно мучать одну и туже картинку, что делать?

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 05:24 22-12-2006 | Исправлено: Pasha13, 05:25 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
предупреждения исчезли

нужно просто $_SESSION['security_code'] и тоже самое для $_POST - в кавычках
 

Цитата:
Правда небольшая проблемка всё же остаётся, при неверном вводе картинка не меняется, а это фигово бот сможет многократно мучать одну и туже картинку, что делать?

да кому ты сдался? что делать.. смотреть как генерится security_code и при ошибке перегенерировать его.
либо {$manlix[other][error]="Неправильный код картинки"; unset($_SESSION['security_code'];}
все зависит от того, что captcha делает когда эта переменная сессии не выставлена

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:28 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
 да кому ты сдался?

А хрен его знает , ip ботов, то молдавские, то южно корейские , proxy вообщем
Полазил по Google эти же боты гадят и в других гостевухах от Manlix.
 

Цитата:
нужно просто $_SESSION['security_code'] и тоже самое для $_POST - в кавычках

всмысле так:  

Код:
if( isset($_POST['security_code']))  

Или так

Код:
elseif(($_SESSION ['security_code']

 
Я опять всё перепутал , картинка не меняется при правильном вводе, при неправильном меняется.

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 05:49 22-12-2006 | Исправлено: Pasha13, 05:51 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
всмысле так

ты вчитаться в мою фразу можешь?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 05:53 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Всё - работает сброс переменной unset($_SESSION['security_code']);
 
Можно ещё вопрос?

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 06:07 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
Можно ещё вопрос?

в след. раз за такое получишь предупреждение.. хватит флеймить. говори только по делу: есть вопрос для всех - задавай. все личные вопросы - в пм

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:10 22-12-2006
Pasha13



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Просто получается что ты всё сделал, а это уже не вопрос называется, а эксплутация
 
Хочу добавить количество набраных символов в TextField-е , может есть уже готовые скриптики? Останется только прикрутить

Всего записей: 905 | Зарегистр. 20-10-2002 | Отправлено: 06:44 22-12-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha13

Цитата:
Хочу добавить количество набраных символов

добавить куда? в php получил строку, вырезал переносы и спец символы, после чего strlen
 
на js..
http://javascript.internet.com/forms/limit-textarea.html#source
а вообще неплохо бы сначала поисковиком воспользоваться

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:48 22-12-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » Manlix Guestbook 1.5 Доработка


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru