LordBone Опубликовано 11 Марта 2007 Жалоба Поделиться Опубликовано 11 Марта 2007 Sannis, Arhar, ок, ясно. Спасибо за мод. И Sannis'у за изначальный вариант. Респект, люди! Ссылка на комментарий Поделиться на других сайтах Прочее
SuXoJ Опубликовано 11 Марта 2007 Жалоба Поделиться Опубликовано 11 Марта 2007 Мод суперский я начал устанавливатьделал запрос, во чё пишет - Table 'ibf_questions' already exists Ну это я так понимаю нормально..., сейчас буду делать далее... завтро напишу результат. Вот на этом месте немного не могу понять Найти этоfunction create_account() Найти далее один раз //----------------------------------------- // CHECK 2: Any errors (duplicate names, etc)? //----------------------------------------- if ( count( $form_errors ) ) { $this->show_reg_form( $form_errors ); return; } Добавить ВЫШЕ //antispam.question if ($this->ipsclass->vars['questions_num']) { $n = $this->ipsclass->num_correct(); if($this->ipsclass->correct_answer($n)==false) { $form_errors['general'][] = $this->ipsclass->lang['err_reg_question']; } } //antispam.question Куда именно добавить...?Этого чёт я вообще не могу найти...function create_account() Вот мой код вместе с тем что вставить надо было я правельно понял?А то чёт не подходит как то { $form_errors['general'][] = $this->ipsclass->lang['err_reg_code']; } $this->ipsclass->DB->do_delete( 'reg_antispam', "regid='".trim($this->ipsclass->txt_alphanumerical_clean($this->ipsclass->input['regid']))."'" ); } //antispam.question if ($this->ipsclass->vars['questions_num']) { $n = $this->ipsclass->num_correct(); if($this->ipsclass->correct_answer($n)==false) { $form_errors['general'][] = $this->ipsclass->lang['err_reg_question']; } } //antispam.question //----------------------------------------- // CHECK 2: Any errors (duplicate names, etc)? //----------------------------------------- if ( count( $form_errors ) ) { $this->show_reg_form( $form_errors ); return; } Я ещё не такой программер как вы, помогите, а.., если хоть даже это и глупый вопрос...Меня этому ни кто не учит всё на догадках, короче я об этом ток поверхностно всё знаю... Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Марта 2007 Жалоба Поделиться Опубликовано 11 Марта 2007 Строка 1448 в оригинале... есть там такая функция, а вы нашли видимо предыдущее включение. Отредактировали правильно... Ссылка на комментарий Поделиться на других сайтах Прочее
SuXoJ Опубликовано 12 Марта 2007 Жалоба Поделиться Опубликовано 12 Марта 2007 13. изменение файла sources/action_public/register.php А) Найти: var $modules = ""; А) Добавить ниже: //antispam.question var $prefix = "answer_"; Б) Найти: //----------------------------------------- // Replace elements //----------------------------------------- Б) Добавить ниже: //antispam.question if ($this->ipsclass->vars['questions_num']) { $this->ipsclass->DB->query("SELECT id,question FROM ibf_questions ORDER BY RAND() LIMIT 1"); $row = $this->ipsclass->DB->fetch_row(); $qinputf = $this->ipsclass->generate_qinputf(); $row['answer_input'] = "<input type=\"text\" maxlength=\"60\" size=\"30\" name=\"".$this->prefix.$qinputf."\" />"; $question_mod = $this->ipsclass->compiled_templates['skin_register']->question_mod( $row ); $this->ipsclass->DB->query("UPDATE ibf_questions SET qinputf='".$qinputf."' WHERE id=".$row['id']); $this->output = str_replace( "<!--{ANTISPAM.QUESTION}-->", $question_mod , $this->output ); } //antispam.question Вот до сюда всё сходица..., у меня это 1441 строкаА вот далее в этом же файле... В) Найти: это у меня 1624 строкаfunction create_account() Мой код отредоктированный } /*-------------------------------------------------------------------------*/ // create_account /*-------------------------------------------------------------------------*/ function create_account() //antispam.question if ($this->ipsclass->vars['questions_num']) { $n = $this->ipsclass->num_correct(); if($this->ipsclass->correct_answer($n)==false) { $form_errors['general'][] = $this->ipsclass->lang['err_reg_question']; } } //antispam.question { //----------------------------------------- // INIT //----------------------------------------- if( $this->ipsclass->vars['ipbli_usertype'] == 'email' ) { $this->ipsclass->input['UserName'] = $this->ipsclass->input['members_display_name']; } В инструкции идёт далее.... В) Найти далее один раз: //----------------------------------------- // CHECK 2: Any errors (duplicate names, etc)? //----------------------------------------- if ( count( $form_errors ) ) { $this->show_reg_form( $form_errors ); return; } В) Добавить ВЫШЕ: //antispam.question if ($this->ipsclass->vars['questions_num']) { $n = $this->ipsclass->num_correct(); if($this->ipsclass->correct_answer($n)==false) { $form_errors['general'][] = $this->ipsclass->lang['err_reg_question']; } } //antispam.question И вот то что написанно добавить выше я уже добавил под этот файлВ) Найти: это у меня 1624 строкаfunction create_account() Или так как в первом сообщении это был мой первый вариант, но потом я переделалкак сейчас..., какой правельный...? подскажите Блин вот проблемка ещё сомниваюсь у меня английская админкаидем в настройки - настройки безопасности и добавляем следующую настройку:вот по английски - TOOLS&SETTINGS/Security and Privacyправельно я думаю здесь надо добовлять...? Ссылка на комментарий Поделиться на других сайтах Прочее
SuXoJ Опубликовано 12 Марта 2007 Жалоба Поделиться Опубликовано 12 Марта 2007 ААААААААААААААААА...........................Едрён батон!!!!!!!!!!!!!!!!!!!!!!!! Получилось..............!!!!!!!!!!!!!!!!Спасибо!!! Спасибо!!! Спасибо!!! Я так долго не решался поставить этот мод думал ушатаю....Не всё получилось, пронесло............ Даже не знаю как выразить свою благодарность.... Ссылка на комментарий Поделиться на других сайтах Прочее
Mayers Опубликовано 12 Марта 2007 Жалоба Поделиться Опубликовано 12 Марта 2007 http://infostore.org/info/255969/suxx.JPG вот поставил мод и вроде все работает...но как оказалось не все вот такую ошибку выдает когда пробую постить через quickbox на форуме.... можно както сделать чтоб этот мод вообще его не трогал? Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Марта 2007 Жалоба Поделиться Опубликовано 12 Марта 2007 Можно. Читайте внимательнее) Защита от ботов: вопросы при регистрации v3 Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Марта 2007 Автор Жалоба Поделиться Опубликовано 13 Марта 2007 покажите код бэкапа topics.php и код после установки модаплюс код входящих переменных в шаблоне quick_reply_box_open Ссылка на комментарий Поделиться на других сайтах Прочее
Mayers Опубликовано 13 Марта 2007 Жалоба Поделиться Опубликовано 13 Марта 2007 quick_reply_box_open <script type="text/javascript"> <!-- var emowindow = ''; function emo_pop(){ emowindow = window.open("index.{ipb.vars['php_ext']}?act=legends&CODE=emoticons&s={ipb.session_id}","Legends","width=250,height=500,resizable=yes,scrollbars=yes"); } --> </script> <div id="qr_open" style="display: $show; position: relative;"> <br /> <form name="REPLIER" action="{ipb.script_url}" method="post"> <input type="hidden" name="act" value="Post" /> <input type="hidden" name="CODE" value="03" /> <input type="hidden" name="f" value="$fid" /> <input type="hidden" name="t" value="$tid" /> <input type="hidden" name="st" value="{ipb.input['st']}" /> <input type="hidden" name="auth_key" value="$key,$form=""" /> <input type="hidden" name="fast_reply_used" value="1" /> {$form} <!-- TITLE DIV --> <div class="borderwrap"> <div class="maintitle"><{CAT_IMG}> {ipb.lang['qr_title']}</div> <div style='padding:6px' align="center"> <textarea onmouseover='checkselection()' id='fastreplyarea' cols="70" rows="8" name="Post" class="textarea" tabindex="1"></textarea> <!-- HIDDEN PASTE SELECTION QUESTION --> <div id='fastreply-pastesel' align='center' style='display:none;'> <input type="button" name="pastesel" onclick="pasteselection();" value="{ipb.lang['add_selected_text']}" class="button" /> </div> <!-- / HIDDEN PASTE SELECTION QUESTION --> <br /> <if="ipb.member['auto_track'] == "" or ipb.member['auto_track'] == '0'"> <input type="checkbox" name="enabletrack" value="1" class="checkbox" /> {ipb.lang['qr_add_email']} | </if> <else> <input type="checkbox" name="enabletrack" value="1" class="checkbox" checked="checked" /> {ipb.lang['qr_add_email']} | </else> <input type="checkbox" name="enableemo" value="yes" class="checkbox" checked="checked" /> <a href="java script:emo_pop();">{ipb.lang['qr_add_smilie']}</a> | <input type="checkbox" name="enablesig" value="yes" class="checkbox" checked="checked" /> {ipb.lang['qr_add_sig']} <br /> <br /> <input type="submit" name="submit" value="{ipb.lang['qr_submit']}" class="button" tabindex="2" accesskey="s" /> <input type="submit" name="preview" value="{ipb.lang['qr_more_opts']}" class="button" /> <input type="button" name="qrc" onclick="ShowHide('qr_open','qr_closed');" value="{ipb.lang['qr_closeit']}" class="button" /> </div> </div> </form> </div> я видимо здесь чтото напутал Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 14 Марта 2007 Автор Жалоба Поделиться Опубликовано 14 Марта 2007 <input type="hidden" name="fast_reply_used" value="1" /> {$form} <!-- TITLE DIV -->правильнотеперь справа от текта шаблона будет нарисована такая кнопочка, ее нажмешь и появится выпадающее менютам будет графа "редактировать входящие переменные", она самая первая в менювот ее содержание и необходимо узнатьплюс код файла topics.php Ссылка на комментарий Поделиться на других сайтах Прочее
X-Whisper Опубликовано 14 Марта 2007 Жалоба Поделиться Опубликовано 14 Марта 2007 Супер! Спасибо, на компе протетстил, работает, посмотрим как боты в реале будут справлятья Ссылка на комментарий Поделиться на других сайтах Прочее
Mayers Опубликовано 14 Марта 2007 Жалоба Поделиться Опубликовано 14 Марта 2007 ArharСпасибо Вам большое за помощь! дело было в том что я незнал как редактировать вход. переменные,а просто вписал переменную $form в текст) Отличный мод,за 3 дня ниодного бота не проскочило....спасибо Ссылка на комментарий Поделиться на других сайтах Прочее
Kamikadze1 Опубликовано 15 Марта 2007 Жалоба Поделиться Опубликовано 15 Марта 2007 поставил на 2.2.2 и вот такая проблема, захожу регистрироваться, ставлю галочку "Я ознакомился с правилами и условиями и принимаю их" и жму кнопку "регистрация", после чего написало "ошибка базой данных", Иду в админку пишу там вопрос http://rap-team.ru/1.jpg как видно поле с ответами и вопросом не прибавилось ? где капать ? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 15 Марта 2007 Автор Жалоба Поделиться Опубликовано 15 Марта 2007 1 - в настройке, которую добавили, есть лишний пробел в конце строки "ключ настройки"?2 - регистрация проходит (вот сейчас, пока вопросы не появляются)? Ссылка на комментарий Поделиться на других сайтах Прочее
Kamikadze1 Опубликовано 16 Марта 2007 Жалоба Поделиться Опубликовано 16 Марта 2007 1 - в настройке, которую добавили, есть лишний пробел в конце строки "ключ настройки"?2 - регистрация проходит (вот сейчас, пока вопросы не появляются)?1 - нету2 - регистрация не проходит... Ссылка на комментарий Поделиться на других сайтах Прочее
AleXedos Опубликовано 16 Марта 2007 Жалоба Поделиться Опубликовано 16 Марта 2007 Отличный мод, все работает - спамм-боты отдыхают... P.S. Пожелание - возможность форматировать текст защитного вопроса, что-то цветом выделить, что-то болдом Может это можно и сейчас, но я полный ноль в этом - подскажите как? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 16 Марта 2007 Автор Жалоба Поделиться Опубликовано 16 Марта 2007 AleXedosа фиг его знает, попробуй html языком писать сразуKamikadze1пишет ошибку,которую мы добавили?тогда шаблоны не доделал где-то (предположительно 8 пункт инструкции) или ошибся в register.php Ссылка на комментарий Поделиться на других сайтах Прочее
ka81 Опубликовано 20 Марта 2007 Жалоба Поделиться Опубликовано 20 Марта 2007 Огромное спасибо за мод!!!!!!!!!!!! Ссылка на комментарий Поделиться на других сайтах Прочее
Schnapz Опубликовано 22 Марта 2007 Жалоба Поделиться Опубликовано 22 Марта 2007 Подскажите пожалуйста, что я мог не так сделать - на форме быстрого ответа нет формы для ответа на вопрос, пост добавляется как обычно. Вопрос в регистрации появился и работает отлично. Если я жму на форме "Полный режим", то выдает, что "Ответ на защитный вопрос неверен. Повторите попытку." Странно... Версия форума 2.1.7. Ссылка на комментарий Поделиться на других сайтах Прочее
firelith Опубликовано 22 Марта 2007 Жалоба Поделиться Опубликовано 22 Марта 2007 Похожая фигня. Только у меня ваще не ругается, но и не работает при попытке ответа в тему. Хоть быстро-ответом, хоть полным. Но при регистрации есть контрольный вопрос. Ссылка на комментарий Поделиться на других сайтах Прочее
Schnapz Опубликовано 22 Марта 2007 Жалоба Поделиться Опубликовано 22 Марта 2007 Наверное вся проблема в том, что у меня кроме всего прочего стоит еще расширенная форма быстрого ответа от d1pro, которая кстати теперь ваще сдохла.... ну блин поставил на свою голову... А теперь решение проблемки и появившаяся новая Нашел что нужно было учесть. вот эту строку в topics.php я уже редактировал, когда ставил расширенную форму быстрого ответа от d1pro она приняла вид - $this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->" , $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check, $qr_type), $this->output ); Теперь чтобы добавить форму с вопросом, нужно превратить ее в:$this->output = str_replace( "<!--IBF.QUICK_REPLY_OPEN-->" , $this->ipsclass->compiled_templates['skin_topic']->quick_reply_box_open($this->topic['forum_id'], $this->topic['tid'], $show, $this->md5_check, $qr_type,$form), $this->output ); Форма появилась, но проверка на правильность ответа для гостей не срабатывает, хоть пиши туда ответ, хоть нет - все равно публикуется. Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 22 Марта 2007 Автор Жалоба Поделиться Опубликовано 22 Марта 2007 насчет формы dipro естесственно нужно сохранить $qr_typeтам же ясно сказано, Добавить: ,$form=""именно такform есть строкового типа, а ни числового! p.s.2 - неверно, не слушайтеизменения во всех скинах, иначе не будет работать Schnapzтолько что к вам зашел, странно, ошибка выдается, а пост сохраняется у меня есть догадка приведите сюда код функции function Error($error) из ipsclass.php Ссылка на комментарий Поделиться на других сайтах Прочее
Schnapz Опубликовано 22 Марта 2007 Жалоба Поделиться Опубликовано 22 Марта 2007 насчет формы dipro естесственно нужно сохранить $qr_typeтам же ясно сказано, Добавить: ,$form=""Да нет, добавлять в шаблон это понятно, а про топикс.пхп и fast_reply_mod потом сам догадался.form есть строкового типа, а ни числового!p.s.2 - неверно, не слушайтеизменения во всех скинах, иначе не будет работатьСейчас все проверил - форма быстрого ответа пропадала только из-за недостающей переменной в строке в topics.php. $form=1 ни на что не влиял. Моя ошибка, щас сообщение поправлю чтоб никого в заблуждение не вводить. Шаблоны в скинах кроме дефолтного я не трогал, да и зачем? Выбор скинов для гостей у меня закрыт, так что регистрация только с дефолтного. приведите сюда код функции function Error($error) из ipsclass.php пожалуйста: function Error($error) { $override = 0; //----------------------------------------- // Showing XML / AJAX functions? //----------------------------------------- if ( $this->input['act'] == 'xmlout' ) { @header( "Content-type: text/plain" ); print 'error'; exit(); } //----------------------------------------- // Initialize if not done so yet //----------------------------------------- if ( $error['INIT'] == 1) { $this->quick_init(); } else { $this->session_id = $this->my_session; } if ( ! is_object( $this->compiled_templates['skin_global'] ) ) { $this->load_template('skin_global'); } //----------------------------------------- // Get error words //----------------------------------------- $this->load_language("lang_error"); list($em_1, $em_2) = explode( '@', $this->vars['email_in'] ); $msg = $this->lang[ $error['MSG'] ]; //----------------------------------------- // Extra info? //----------------------------------------- if ($error['EXTRA']) { $msg = preg_replace( "/<#EXTRA#>/", $error['EXTRA'], $msg ); } //----------------------------------------- // Show error //----------------------------------------- $html = $this->compiled_templates['skin_global']->Error( $msg, $em_1, $em_2, 1); //----------------------------------------- // If we're a guest, show the log in box.. //----------------------------------------- if ($this->member['id'] == "" and $error['MSG'] != 'server_too_busy' and $error['MSG'] != 'account_susp') { $safe_string = str_replace( '&', '&', $this->parse_clean_value($_SERVER['QUERY_STRING']) ); $html = str_replace( "<!--IBF.LOG_IN_TABLE-->", $this->compiled_templates['skin_global']->error_log_in($safe_string), $html); $override = 1; } Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 23 Марта 2007 Автор Жалоба Поделиться Опубликовано 23 Марта 2007 там еще должно быть после этого //----------------------------------------- // Update session //----------------------------------------- $this->DB->do_shutdown_update( 'sessions', array( 'in_error' => 1 ), "id='{$this->my_session}'" ); //----------------------------------------- // Print //----------------------------------------- $print = new display(); $print->ipsclass =& $this; $print->add_output($html); $print->do_output( array( 'OVERRIDE' => $override, 'TITLE' => $this->lang['error_title'] ) ); } ну да ладно, это врядли...а приведи код из post.php (который изменяли)типа //----------------------------------------- // Convert the code ID's into something // use mere mortals can understand.... //----------------------------------------- $this->han_post->obj['action_codes'] = array ( '00' => array( '0' , 'new' ), '01' => array( '1' , 'new' ), '02' => array( '0' , 'reply' ), '03' => array( '1' , 'reply' ), '08' => array( '0' , 'edit' ), '09' => array( '1' , 'edit' ), '10' => array( '0' , 'poll' ), '11' => array( '1' , 'poll' ), '14' => array( '0' , 'poll_after' ), '15' => array( '1' , 'poll_after' ), ); //antispam.question if ( $this->ipsclass->vars['questions_num'] and $this->han_post->obj['action_codes'][ $this->ipsclass->input['CODE'] ][0] and ($this->ipsclass->member['id'] == "" or !$this->ipsclass->member['id'])) { $n = $this->ipsclass->num_correct(); if($this->ipsclass->correct_answer($n)==false) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'antispam_failed' ) ); exit(); } } //antispam.question //----------------------------------------- // Make sure our input CODE element is legal. //-----------------------------------------все также?exit есть? Ссылка на комментарий Поделиться на других сайтах Прочее
Schnapz Опубликовано 23 Марта 2007 Жалоба Поделиться Опубликовано 23 Марта 2007 все также?exit есть?Угу, вот код: //----------------------------------------- // Convert the code ID's into something // use mere mortals can understand.... //----------------------------------------- $this->han_post->obj['action_codes'] = array ( '00' => array( '0' , 'new' ), '01' => array( '1' , 'new' ), '02' => array( '0' , 'reply' ), '03' => array( '1' , 'reply' ), '08' => array( '0' , 'edit' ), '09' => array( '1' , 'edit' ), '10' => array( '0' , 'poll' ), '11' => array( '1' , 'poll' ), '14' => array( '0' , 'poll_after' ), '15' => array( '1' , 'poll_after' ), ); //antispam.question if ( $this->ipsclass->vars['questions_num'] and $this->han_post->obj['action_codes'][ $this->ipsclass->input['CODE'] ][0] and ($this->ipsclass->member['id'] == "" or !$this->ipsclass->member['id'])) { $n = $this->ipsclass->num_correct(); if($this->ipsclass->correct_answer($n)==false) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'antispam_failed' ) ); exit(); } } //antispam.question там еще должно быть после этого вот это идет//----------------------------------------- // Do we have any post data to keepy? //----------------------------------------- if ( $this->input['act'] == 'Post' OR $this->input['act'] == 'Msg' OR $this->input['act'] == 'calendar' ) { if ( $_POST['Post'] ) { $post_thing = $this->compiled_templates['skin_global']->error_post_textarea($this->txt_htmlspecialchars($this->txt_stripslashes($_POST['Post'])) ); $html = str_replace( "<!--IBF.POST_TEXTAREA-->", $post_thing, $html ); } } //----------------------------------------- // Update session //----------------------------------------- $this->DB->do_shutdown_update( 'sessions', array( 'in_error' => 1 ), "id='{$this->my_session}'" ); //----------------------------------------- // Print //----------------------------------------- $print = new display(); $print->ipsclass =& $this; $print->add_output($html); $print->do_output( array( 'OVERRIDE' => $override, 'TITLE' => $this->lang['error_title'] ) ); }Что-то меня берут смутные подозрения, что это Ajax-мод виноват, надо будет проверить все... Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения