ANTI-Spam Bot Registration für THWB
Da nun auch der Server f�r das THWB Projekt nicht mehr gepflegt wird, hier noch einmal eine Anleitung zur Installation:

Voraussetzungen

Auf dem Webserver muss die GD Library installiert sein.

Weitere Software

eBiene CaptchaImage Maker besorgen (Download) oder ebiene.de -> Skripte -> CaptchaImageMaker.

Installation

1) Den CaptchaImage Maker in einem Unterverzeichnis captcha ablegen.

2) templates\default\register.html anpassen

Vorher
.
.
        <tr bgcolor="$style[CellB]"> 
          <td width="20%">$style[stdfont]Email$style[stdfontend]</td>
          <td> 
            <input class="tbinput" type="text" name="register[useremail]">
            $style[smallfont]Bitte geben Sie unbedingt eine gültige Emailadresse an.$style[smallfontend]</td>
        </tr>
$passwordfield
        <tr bgcolor="$style[CellA]"> 
.
.
Nachher (CaptchaImage Maker 0.2)

.
.
        <tr bgcolor="$style[CellB]"> 
          <td width="20%">$style[stdfont]Email$style[stdfontend]</td>
          <td> 
            <input class="tbinput" type="text" name="register[useremail]">
            $style[smallfont]Bitte geben Sie unbedingt eine gültige Emailadresse an.$style[smallfontend]</td>
        </tr>
$passwordfield
<!-- CAPTCHA -->
        <tr bgcolor="$style[CellA]"> 
          <td width="20%">$style[stdfont]Bestätigungscode$style[stdfontend]</td>
          <td> 
        <img src="./captcha/require/captcha_image.php?width=150&height=60&type=jpeg&$captcha_hash">
          </td>
        </tr>
        <tr bgcolor="$style[CellB]"> 
          <td width="20%">$style[stdfont]Eingabe<br>Bestätigungscode$style[stdfontend]</td>
          <td> 
            <input class="tbinput" type="text" name="register[captcha_string]">
            $style[smallfont]Bitte geben Sie den Bestätigungscode ein.$style[smallfontend]</td>
        </tr>
<!-- CAPTCHA -->
        <tr bgcolor="$style[CellA]"> 
.
.
Nachher (CaptchaImage Maker 0.3)

.
.
        <tr bgcolor="$style[CellB]"> 
          <td width="20%">$style[stdfont]Email$style[stdfontend]</td>
          <td> 
            <input class="tbinput" type="text" name="register[useremail]">
            $style[smallfont]Bitte geben Sie unbedingt eine gültige Emailadresse an.$style[smallfontend]</td>
        </tr>
$passwordfield
<!-- CAPTCHA -->
        <tr bgcolor="$style[CellA]"> 
          <td width="20%">$style[stdfont]Bestätigungscode$style[stdfontend]</td>
          <td> 
        <img src="./captcha/require/image.php?width=150&height=60&type=jpeg&$captcha_hash">
          </td>
        </tr>
        <tr bgcolor="$style[CellB]"> 
          <td width="20%">$style[stdfont]Eingabe<br>Bestätigungscode$style[stdfontend]</td>
          <td> 
            <input class="tbinput" type="text" name="register[captcha_string]">
            $style[smallfont]Bitte geben Sie den Bestätigungscode ein.$style[smallfontend]</td>
        </tr>
<!-- CAPTCHA -->
        <tr bgcolor="$style[CellA]"> 
.
.
3) do_register.php anpassen

Vorher

.
.
include "./inc/header.inc.php";
.
.
while( list(, $bannedmail) = @each($config['bannedemails']) )
{
    $bm = stristr($register['useremail'], $bannedmail);
    if( $bm )
    {
        message('Ungültige E-Mailadresse',
            'Die von Ihnen gewählte E-Mailadresse ist leider nicht erlaubt.');
    }
}

if( strlen($errmsg) > 0 )
.
.
Nachher (CaptchaImage Maker 0.2)

.
.
// eBiene CaptchaImage Maker 0.2 =>

// Session starten
session_start();

// Konfiguration einbinden
require './captcha/config/config.php';

// Crypt-Klasse einbinden
require './captcha/require/crypt.class.php';

// Crypt-Klasse initialisieren
$GLOBALS['crypt_class'] = new crypt_class();

if( isset($_SESSION['captcha_string']) && strlen($_SESSION['captcha_string']) > 0 )
    $captcha_code = strtoupper($GLOBALS['crypt_class']->base64_decode_advanced($_SESSION['captcha_string']));
else
    $captcha_code = '';

// <=

include "./inc/header.inc.php";
.
.
while( list(, $bannedmail) = @each($config['bannedemails']) )
{
    $bm = stristr($register['useremail'], $bannedmail);
    if( $bm )
    {
        message('Ungültige E-Mailadresse',
            'Die von Ihnen gewählte E-Mailadresse ist leider nicht erlaubt.');
    }
}

// eBiene CaptchaImage Maker 0.2 =>

if( !isset($register['captcha_string']) )
{
    message('Fehler', 'Bitte geben Sie den Bestätigungscode ein !');
}

if( strtoupper($register['captcha_string']) != $captcha_code )
{
    message('Fehler', 'Der Bestätigungscode ' . strtoupper($register['captcha_string']) . ' stimmt nicht, bitte �berpr�fen Sie ihre Angaben.');
}

// <=

if( strlen($errmsg) > 0 )
.
.
Nachher (CaptchaImage Maker 0.3)

.
.
// eBiene CaptchaImage Maker 0.3 =>

// Session starten
session_start();

// Konfiguration einbinden
require './captcha/require/config.php';

// Crypt-Klasse einbinden
require './captcha/require/crypt.class.php';

// Crypt-Klasse initialisieren
$GLOBALS['crypt_class'] = new crypt_class();

if( isset($_SESSION['captcha_string']) && strlen($_SESSION['captcha_string']) > 0 )
    $captcha_code = strtoupper($GLOBALS['crypt_class']->base64_decode_advanced($_SESSION['captcha_string']));
else
    $captcha_code = '';

// <=

include "./inc/header.inc.php";
.
.
while( list(, $bannedmail) = @each($config['bannedemails']) )
{
    $bm = stristr($register['useremail'], $bannedmail);
    if( $bm )
    {
        message('Ungültige E-Mailadresse',
            'Die von Ihnen gewählte E-Mailadresse ist leider nicht erlaubt.');
    }
}

// eBiene CaptchaImage Maker 0.3 =>

if( !isset($register['captcha_string']) )
{
    message('Fehler', 'Bitte geben Sie den Bestätigungscode ein !');
}

if( strtoupper($register['captcha_string']) != $captcha_code )
{
    message('Fehler', 'Der Bestätigungscode ' . strtoupper($register['captcha_string']) . ' stimmt nicht, bitte �berpr�fen Sie ihre Angaben.');
}

// <=

if( strlen($errmsg) > 0 )
.
.
4) register.php anpassen

Vorher

.
.
include "./inc/header.inc.php";
.
.
Nachher

.
.
// eBiene CaptchaImage Maker 0.2/0.3 =>

$captcha_hash = md5(uniqid(rand(), true));

// <=

include "./inc/header.inc.php";
.
.
5) captcha/require/config.php anpassen (NUR Version 0.3)

Vorher

.
.
/* Quelle des Strings */
define('CAPTCHA_STRING_SOURCE', 'list'); .
.
Nachher

.
.
/* Quelle des Strings */
define('CAPTCHA_STRING_SOURCE', ''); .
.

Das ist schon alles.

Wenn man m�chte, kann man die L�nge des Strings in der captcha\require\captcha_image.class.php (0.2) bzw. captcha.class.php (0.3) anpassen:

Vorher

.
.
  function check_captcha_params() {
    /* String-Quelle festlegen */
    if (empty($this->captcha_string) === true || $this->captcha_string == 'rand') {
      $this->captcha_string = md5(uniqid(rand(), true));
    } else {
      $this->captcha_string = $GLOBALS['captcha_words_array'][rand(0, count($GLOBALS['captcha_words_array']) - 1)];
    }
.
.
Nachher (hier 6-Stellig)

.
.
  function check_captcha_params() {
    /* String-Quelle festlegen */
    if (empty($this->captcha_string) === true || $this->captcha_string == 'rand') {
      $this->captcha_string = strtoupper(substr(md5(uniqid(rand(), true)),0,6));
    } else {
      $this->captcha_string = $GLOBALS['captcha_words_array'][rand(0, count($GLOBALS['captcha_words_array']) - 1)];
    }
.
.


Bei Fragen bitte einfach eine E-Mail an mich senden.

Die Original Anleitung vom THWB-Hack-Forum findet sich HIER!
Home