Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 03.07.07, 13:07
Benutzerbild von nicolaibassdh
Forum Newbie
 
Registriert seit: 13.03.07
Beiträge: 39

[Lösung] CHC Forum mit Captcha


Hallo zusammen,

in diesem Thread war ich ja nach der Suche für ein Spam-Problem in einem offenen CHC Forum.

Habe mir nun eine Captcha Funktion mit eingebaut. Hier eine kleine Anleitung falls jemand ähnliches plant:

1. Extension "captcha" installieren.

Den Code in in der Datei /ext/captcha/captcha/captcha.php habe ich dann mit folgenden Code überschrieben:
PHP-Code:
<?php
session_start
();
function 
strrand($length)
{
    
$str "";

    while(
strlen($str)<$length){
    
$random=rand(48,122);
    
#if( ($random>47 && $random<58)  ){
    
if (ereg('[A-Za-z]',chr($random)))
        
$str.=chr($random);
    
#}

    
}

    return 
$str;
}

$imgHeight 20;
$imgWidth 50;

$text $_SESSION['tx_captcha_string'] = strrand(5);
$img_number imagecreate($imgWidth,$imgHeight);
$backcolor imagecolorallocate($img_number,244,244,244);
$textcolor imagecolorallocate($img_number,0,0,0);
$white imagecolorallocate($img_number0xFF0xFF0xFF);

imagefill($img_number,0,0,$backcolor);

Imagestring($img_number,5,1,1,$text,$textcolor);

        
//some obfuscation
        
for ($i=0$i<2$i++) {
            
$x1 rand(0$imgWidth 1);
            
$y1 rand(0round($imgHeight 100));
            
$x2 rand(0round($imgWidth 100));
            
$y2 rand(0$imgHeight 1);
            
imageline($img_number$x1$y1$x2$y2$white);

            
$x1 rand(0$imgWidth 1);
            
$y1 $imgHeight rand(1round($imgHeight 100));
            
$x2 $imgWidth rand(1round($imgWidth 100));
            
$y2 rand(0$imgHeight 1);
            
imageline($img_number$x1$y1$x2$y2$white);

/*            $cx = rand(0, $imgWidth - 50) + 25;
            $cy = rand(0, $imgHeight - 50) + 25;
            $w = rand(1, 24);
            imagearc($img_number, $cx, $cy, $w, $w, 0, 360, $white);
   */     
}


header("Content-type: image/png");
imagepng($img_number);
?>
2. Anpassung CHC Forum

2.1 Anpassung Datei /ext/chc_forum/class.tx_chcforum_form.php anpassen
In der Datei habe ich folgende Änderungen vorgenommen:
function tx_chcforum_form (ca. Zeile 75) um folgende Zeile erweitert:
PHP-Code:
$captchaHTMLoutput t3lib_extMgm::isLoaded('captcha') ? '<img src="'.t3lib_extMgm::siteRelPath('captcha').'captcha/captcha.php" alt="" />' ''
In der gleichen Funktion label_array um folgendes Feld erweitert:
PHP-Code:
'label_captcha' => t3lib_extMgm::isLoaded('captcha') ? '<img src="'.t3lib_extMgm::siteRelPath('captcha').'captcha/captcha.php" alt="" />' ''
Funktion function validate() (ca. Zeile 485) um folgende Zeilen erweitert:
PHP-Code:
if (t3lib_extMgm::isLoaded('captcha'))    {
                
session_start();
                
$captchaStr $_SESSION['tx_captcha_string'];
                
$_SESSION['tx_captcha_string'] = '';
            } else {
                
$captchaStr = -1;
            }
            
            if(
$_POST['captcha'] != $captchaStr) {
                
$this->error['captcha'] = 'Please repeat the correct code!';
            } else {
                
$valid_captcha true;
            } 
Dann im Code mal nach folgender Zeile suchen:
PHP-Code:
if ($valid_name == true && $valid_text == true && $valid_subject == true && 
Diese habe ich dann noch mit folgender Abfrage erweitert:
PHP-Code:
&& $valid_captcha == true 
Das war es in dieser Datei

3. Template anpassen
Dafür die Datei /ext/chc_forum/pi1/templates/post_form.tpl öffnen und an gewünschter Stelle folgendes eintragen:
HTML-Code:
Repeat code: *<input type="text" size=30 name="captcha" value=""><br />
{label_captcha}
OK, der hier gezeigte PHP Code ist nicht ganz Typo3 Konform aber es läuft ^^

Hoffe irgendwem damit geholfen zu haben.

Viele Grüße

Nic.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CHC Forum Benutzernamen Schützen in offenem Forum lusiphur chc_forum 1 05.06.08 12:04
Community Lösung tomaso Extension suchen und neue vorschlagen 0 06.05.08 12:27
Gelöst sr_feuser_register Captcha einbinden: sr_freecap od. captcha? josDesign Alle anderen Extensions 4 12.02.08 10:17
Gelöst Keine Forumsanzeige nach mm-forum Installation - wer hat eine Lösung? waumpada mm_forum 1 01.12.07 12:27
Lösung gesucht Stefan Hueg TYPO3-Jobs 0 02.11.04 10:26


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0