Extension talk:Check Spambots

From MediaWiki.org
Jump to: navigation, search

Contents

Only check for spammers on the initial user signup? [edit]

A question for the author of this extension...

I don't need the edit check of a user because my wiki is log-in to edit, what do I have to remove to make this extension only check for spammers on the initial user signup?

Thanks much!

TeraS

Removing this line

$wgHooks['GetBlockedStatus'][] = 'CheckSpambots::check_edit';

should cause the extension to check new user creation only. --Carlb 01:19, 16 November 2009 (UTC)

Thank you kindly for the solution!!

TeraS

That line of code can be found in the file CheckSpambots.php --Stuart Halliday 15:02, 24 November 2010 (UTC)

File needs to be added to the install list [edit]

There is a whitelist.sample.txt file in the latest versions of this software (0.49 and higher) if you do not copy that file you will break your wiki...


FYI

TeraS 14:52, 17 April 2010 (UTC)


MySQL information needed? [edit]

is it necessary to put the mysql database username und password in the config.php? I think this is insecure, or? --85.127.217.168 11:54, 14 August 2010 (UTC)

No it's not needed. You need to enter that if you want a new database on your server to store the information on the spammers the check catches and rejects.TeraSuccubi 00:31, 17 September 2010 (UTC)

What? I who am the sysop turn out to be a spammer? [edit]

So I created a wiki recently and I was having a spam problem, so I install this Check Spambots extension and it looks great and all, I get it up and working... And a few days later I begin getting all these internal 500 errors on my wiki. Can't figure what is going on. Until I go back to Checkspambots, click on "View Spammers", and among the ones that have detected and blocked is my own ip address! It says that botscout detected it as a spamming address. What is going on here? --Lwangaman 09:50, 20 October 2010 (UTC)

Suggested modification for shared hosting [edit]

Since most shared hosting services do not give permissions for database creation, I would suggest taking into account those cases where a database already exists but the "tblspammers" table doesn't... Here is what I did:

  • In "functions.php", within the "IsSpammerInDB()" function, add a table exists check after the database exists check, just so:
                // Check our database exists shall we?
                $ret = mysql_select_db($dbname);
                if($ret == "0"){
                        // Okay, lets try and create it then ....
                        $ret = CreateDatabase($host, $username, $password, $dbname);
                        $ret = mysql_select_db($dbname);
                        if($ret == "0"){
                                mysql_close($conSBST);
                                return false;
                        }
                }
                $tbl_tst_SQL = "SELECT COUNT(*) FROM information_schema.tables ".
                               "WHERE table_schema = '$dbname' AND table_name = 'tblspammers'";
                $ret = mysql_query($tbl_tst_SQL);
                if($ret == "0"){
                        // Database already exists but we still have to create the table ...
                        $ret = CreateTable($host, $username, $password, $dbname);
                        $ret = mysql_query($tbl_tst_SQL);
                        if($ret == "0"){
                                mysql_close($conSBST);
                                return false;
                        }
                }
  • Do the same in the "LogSpammerToDB()" function
  • Create a new function called "CreateTable()" right after the "CreateDatabase()" function, just so:
  function CreateTable($host, $username, $password, $dbname){
        $conSBST = mysql_connect($host,$username,$password);
        if(!$conSBST){
                return false;
        }else{
                // Create table if it doesn't exist
                mysql_select_db($dbname, $conSBST);
                $sSQL = "CREATE TABLE IF NOT EXISTS tblspammers
                (
                        fldspammer_id int NOT NULL AUTO_INCREMENT,
                        PRIMARY KEY(fldspammer_id),
                        fldspammer_name varchar(255),
                        fldspammer_ip varchar(15),
                        fldspammer_mail varchar(255),
                        flddb_matched varchar(255),
                        fldadded DATE,
                        fldspammer_count int
                )";
                // Execute query
                if(!mysql_query($sSQL,$conSBST)){
                        return mysql_error();
                }

                // ********************************
                // Not currently required
                // ********************************
                // Create counter table
                //mysql_select_db($dbname, $conSBST);
                //$sSQL = "CREATE TABLE IF NOT EXISTS tblspamcount(fldspam_count int)";
                // Execute query
                //if(!mysql_query($sSQL,$conSBST)){
                //      return mysql_error();
                //}

                // Cleanup
                if(!mysql_close($conSBST)){
                        return mysql_error();
                }
                // Finish
                return true;
        }
  }

--Lwangaman 09:59, 20 October 2010 (UTC)

The IsSpammerInDB function no longer exists? Is there another way to do this Crazy Jake88 (talk) 18:26, 27 March 2012 (UTC)

MediaWiki 1.18 [edit]

I installed this extension on a MediaWiki 1.18. I don't know if I did something wrong or if this is due to a change in MediaWiki, but for me, the following

 $current_user->mBlockedby = wfMsg( 'proxyblocker' );
 $current_user->mBlockreason = wfMsg( 'proxyblockreason' ); 

does not block a user. I have a replaced it by

 throw new ReadOnlyError ;

as a workaround. Apart from that, everything works fine!! --Kipmaster 07:28, 2 August 2011 (UTC)

wgOut->errorPage() method [edit]

The following line(s)...

 $wgOut->errorPage( 'blacklistedusername', 'blacklistedusernametext' );
 $wgOut->returnToMain( false, $returnTitle->getPrefixedText() ); 

...give:

Fatal error: Call to undefined method OutputPage::errorPage()

I replaced this with:

 $wgOut->showErrorPage('error','badarticleerror');

...which isn't exactly right but does the job and doesn't error. Dunno where the errorPage function came from. It doesn't seem to exist.

212.7.206.51 00:12, 5 January 2012 (UTC)

Strange error [edit]

While conducting a IP search using Special:GlobalBlockList, it returns this message:

"Tornevall counter.sample.txt is missing, I need this to create counter.txt unless you are going to create it yourself?"

Here are a couple screenshots of the pages [1] [2]

Not sure what is causing this. A discussion at Bugzilla led me to edit out the "Require_once" statement of this extension and after doing so did not receive the error. Any help or direction would be appreciated.
Mlpearc powwow 20:44, 30 January 2012 (UTC)

Testing [edit]

How do you test the installation is doing anything? --Rob Kam (talk) 08:57, 16 April 2013 (UTC)