Webmaster общности: Predpriemach.com | SearchEngines.bg

    PHPBB анти спам MOD

    Автор: Truden

    Този MOD е основан на cookies.
    Създаден е като анти спам plugin за WordPress и работи 100% с него.
    В PHPBB2 работи.

    Наречен е TruBar 4.0(Silent) като продължител на TruBar, който ползва security image и е в употреба в www.truden.com, където всеки анонимен може да създава тема във форумите и да дава мнение в тях.

    Моля да бъда извинен за Английския език ползван в обяснението.

    COD:

    ##############################################################
    ## MOD Title: TruBar
    ##
    ## MOD Author: Truden < sisoeff(at)gmail-dot-com > (Nikolay Sisoev-Truden) http://www.truden.com
    ##
    ## MOD Description: All users are checked whether they are humans or robots.
    ## The checking is silent and do not interfear with the theme interface.
    ## The check is done with "onmousedown" event. Cookies(through java script) are sent when user clicks in the text area to type.
    ## Robots do not click and do not read js.
    ##
    ## MOD Version: 4.0(Silent)
    ##
    ## Installation Level: (Easy)
    ## Installation Time: 5 Minutes
    ## Files To Edit:
    ## posting.php
    ## language/lang_english/lang_main.php
    ## templates/ subSilver/posting_body.tpl
    ##
    ## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
    ##############################################################
    ## Not released yet for PHPBB2
    ##
    ##############################################################
    ## Author Notes:
    ## I Love You All.
    ##
    ##############################################################
    ## MOD History: Blah-blah...
    ##
    ## 2007-05-28 - Version 4.0(Silent)
    ##
    ##############################################################
    ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
    ##############################################################
    
    
    #
    #-----[ OPEN ]------------------------------------------
    #
    posting.php
    
    #
    #-----[ FIND ]------------------------------------------
    #
    else if ( $submit || $confirm)
    {
    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    if (isset($_COOKIE['TrBr']))
    {
    #
    #-----[ FIND ]------------------------------------------
    #
    submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    // START TruBar
    setcookie('TrBr', check, time()-30000000);
    // END TruBar
    #
    #-----[ FIND ]------------------------------------------
    #
    message_die(GENERAL_MESSAGE, $return_message);
    }
    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    }else{
    $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['TruBar_error_post'];
    }
    #
    #-----[ OPEN ]------------------------------------------
    #
    language/lang_english/ lang_main.php
    #
    #-----[ FIND ]------------------------------------------
    #
    //
    // That's all, Folks!
    // -------------------------------------------------
    #
    #-----[ BEFORE, ADD ]------------------------------------------
    #
    //
    //TruBar
    //
    $lang['TruBar_error_post'] = "<font color=\"red\"><b>You did not click in the text area. Tab key selection does not take your comment.<br />Another reason to be here is that you do not have java script and cookies enabled in your browser.</b></font>";
    #
    #-----[ DIY INSTRUCTIONS ]------------------------------------------
    #
    Do the above change for all your language files
    #
    #-----[ OPEN ]------------------------------------------
    #
    templates/ subSilver/ posting_body.tpl
    #
    #-----[ FIND ]------------------------------------------
    #
    <script language="JavaScript" type="text/javascript">
    <!--
    #
    #-----[ AFTER, ADD ]------------------------------------------
    #
    // Start TruBar
    function trubar8() {
    document.cookie = 'TrBr=check; expires=Thu, 2 Aug 2029 20:08:08 UTC; path=/'
    }
    // End TruBar
    #
    #-----[ FIND ]------------------------------------------
    #
    <textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{MESSAGE}</textarea>
    #
    #-----[ REPLACE WITH ]------------------------------------------
    #
    <textarea onmousedown="return trubar8()" name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{MESSAGE}</textarea>
    #
    #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
    #
    
    # EoM

    За допълнителна сигурност, че робот няма да дойде във форумите ви с вашите кукита, се създава файл cleaner.php и се поставя в главната папка (forum root) на PHPBB2 .

    cleaner.php

    <?php
    setcookie('TrBr', check, time()-30000000);
    echo "<div style=\"display: left; color: red; background-color:#05F9B5; border: solid 2px; width: 750px; margin: 18px; padding: 18px\" id=\"cookieclean\">Току що вашите кукита за коментар бяха изтрити. <input type =\"button\" name =\"back\" value=\"Върнете се\" onclick=\"history.go(-1)\"> и се наслаждавайте на нашите форуми.</div>";
    ?>

    ОТВОРЕТЕ файловете:

    index.php
    viewforum.php
    viewtopic.php

    Във всички тях намерете:
    Редактирано на 01.06.2007

    //
    // Start session management
    //
    $userdata = session_pagestart($user_ip, $forum_id);
    init_userprefs($userdata);
    //
    // End session management
    //

    ВМЪКНЕТЕ ОТДОЛУ:

    //Start TruBar
    if ( !$userdata['session_logged_in'] && isset($_COOKIE['TrBr']) )
    {
    $cleaner = "../cleaner.php";
    header ("Location: $cleaner");
    exit;
    }
    //END TruBar

    Край на редакцията от 01.06.2007

    Готово.

    При така изпълнения MOD, всеки посетител (и регистрираните) при щракане с мишката в полето за писане ще получи кукита изпратени от JS функцията trubar8()

    При POST се прави проверка дали кукитата съществуват.
    Ако не са записани се получава ГРЕШКА, уведомяваща, че потребителя не е щракнал в полето за писане (избрал го е с TAB клавиша) или че е изключил javascript и cookies на своя браузър.

    Тази техника може да се ползва във всякакви web апликации.
    Много по-удобна за изпълнение е, когато POST се прави към друг файл а не към „себе си“, както е в PHPBB2

    Защо работи срещу роботизиран спам?

    Защото роботите не изпълняват onmousedown (нямат мишка) и защото не четат java script.

    Отворете си форумите за анонимни и се наслаждавайте на форуми без спам 😉

    Труден