wbb Captcha modifizieren?

04/06/2012 15:25 Psyko.#1
Hey,
Ich möchte den vom WoltLab Burning Board 3.1.6 automatisch generierten Captcha-Code durch einen vordefinierten Text (z.B. "Psyko") ersetzen. Nur wie geht das? ;o

Der Quelltext Abschnitt mit dem Captcha sieht folgendermaßen aus:
PHP Code:
<fieldset>
        <
legend>Sicherheitsmaßnahme</legend>
            <
div class="formElement">
            <
div class="formFieldLabel">
                <
label for="captchaString">Sicherheitscode</label>
            </
div>
            <
div class="formField">
                <
input type="text" class="inputText" name="captchaString" value="" id="captchaString" />
                            </
div>
            <
div class="formFieldDesc">
                <
p>Bitte geben Sie die untenstehenden Zeichen ohne Leerstellen in das leere Feld einGroßund Kleinschreibung müssen nicht beachtet werdenSollten Sie das Bild auch nach mehrfachem Neuladen nicht entziffern könnenwenden Sie sich an den Administrator dieser Seite.</p>
                <
img id="captchaImage" src="index.php?page=Captcha&captchaID=165" alt="" />
            </
div>
            
            <
input type="hidden" id="captchaID" name="captchaID" value="165" />
            
            <
script type="text/javascript">
                
//<![CDATA[
                
var captchaLanguage = new Object();
                
captchaLanguage['wcf.captcha.reload'] = 'Neues Captchabild laden';
                
captchaLanguage['wcf.captcha.minimize'] = 'Bild verkleinern';
                
captchaLanguage['wcf.captcha.maximize'] = 'Bild vergrößern';
                
//]]>
            
</script>
            <script type="text/javascript" src="wcf/js/Captcha.class.js"></script>
        </div>
</fieldset> 
Die im Quelltext erwähnte "Captcha.class.js" sieht so aus:
PHP Code:
/**
 * @author    Marcel Werk
 * @copyright    2001-2007 WoltLab GmbH
 * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
 */
function Captcha() {
    
this.ajaxRequest null;
    
this.imageWidth 250;
    
this.imageHeight 50;
    
this.zoomIcon;
    
this.src 'index.php?page=Captcha';
    
    
/**
     * Initialises the reload function.
     */
    
this.init = function() {
        
// get captcha image
        
var image document.getElementById('captchaImage');
        if (
image) {
            var 
document.createElement('p');
            
image.parentNode.appendChild(p);
            
            var 
document.createElement('a');
            
a.onclick = function() { captcha.reload(); };
            
p.appendChild(a);
            
            var 
title document.createTextNode(captchaLanguage['wcf.captcha.reload']);
            
a.appendChild(title);
            
            
// add onload event
            
image.onload = function() { captcha.initImageResizer(); };
        }
    }
    
    
this.initImageResizer = function() {
        var 
image document.getElementById('captchaImage');
        if (
image) {
            
this.imageWidth image.width;
            
this.imageHeight image.height;
            if (
this.imageWidth && this.imageHeight 0) {
                
// change cursor
                
image.style.cursor 'pointer';
            
                
// append zoom icon
                
this.zoomIcon document.createElement('img');
                
image.parentNode.insertBefore(this.zoomIconimage.nextSibling);
                
this.zoomIcon.style.display 'none';
                
this.zoomIcon.style.cursor 'pointer';
                
this.zoomIcon.style.verticalAlign 'top';
                
this.zoomIcon.style.marginLeft '-20px';
                
this.zoomIcon.style.paddingTop '4px';
            
                
// add events
                
image.onmouseover = function() { captcha.zoomIcon.style.display ''; };
                
this.zoomIcon.onmouseover image.onmouseover;
                
image.onmouseout = function() { captcha.zoomIcon.style.display 'none'; };
            
                
this.minimize();
            }
        }
    }
    
    
this.minimize = function() {
        var 
image document.getElementById('captchaImage');
        if (
image) {
            
// half image size
            
image.width Math.round(this.imageWidth 2);
            
image.height Math.round(this.imageHeight 2);
            
            
// add onlick event
            
image.onclick = function() { captcha.maximize(); };
            
            
// change zoom icon
            
this.zoomIcon.src RELATIVE_WCF_DIR 'icon/zoomInS.png';
            
image.title captchaLanguage['wcf.captcha.maximize'];
            
this.zoomIcon.title captchaLanguage['wcf.captcha.maximize'];
        }
    }
    
    
this.maximize = function() {
        var 
image = $('captchaImage');
        if (
image) {
            
            
image.up().insert('<div id="captchaHelper"></div>');
            var 
captchaHelper = $('captchaHelper');
            
            if (
captchaHelper.getWidth() < this.imageWidth) {
                
image.width captchaHelper.getWidth();
                
image.height this.imageHeight * (captchaHelper.getWidth() / this.imageWidth);
                
captchaHelper.remove();
            }
            else {
                
// set original image size
                
image.width this.imageWidth;
                
image.height this.imageHeight;
            }
            
            
// add onlick event
            
image.onclick = function() { captcha.minimize(); };
            
            
// change zoom icon
            
this.zoomIcon.src RELATIVE_WCF_DIR 'icon/zoomOutS.png';
            
image.title captchaLanguage['wcf.captcha.minimize'];
            
this.zoomIcon.title captchaLanguage['wcf.captcha.minimize'];
        }
    }
    
    
/**
     * Starts the reload of the captcha.
     */
    
this.reload = function() {
        if (
this.ajaxRequest == null) {
            
// request new captcha id
            
var date = new Date();
            
this.ajaxRequest = new AjaxRequest();
            
this.ajaxRequest.openGet(this.src '&action=newCaptchaID&t='+date.getTime()+SID_ARG_2ND, function() { captcha.receiveResponse() });
        }
    }
    
    
this.receiveResponse = function() {
        if (
this.ajaxRequest && this.ajaxRequest.xmlHttpRequest.readyState == && this.ajaxRequest.xmlHttpRequest.status == 200 && this.ajaxRequest.xmlHttpRequest.responseXML) {
            
// get new captcha id
            
var captchaID 0;
            var 
tags this.ajaxRequest.xmlHttpRequest.responseXML.getElementsByTagName('captchaid');
            if (
tags.length 0) {
                
captchaID tags[0].childNodes[0].nodeValue;
            }
            
this.ajaxRequest.xmlHttpRequest.abort();
            
this.ajaxRequest null;
            
            
// insert new captcha id in hidden field
            
var hidden document.getElementById('captchaID');
            if (
hidden) {
                
hidden.value captchaID;
            }
            
            
// reload captcha image
            
var image document.getElementById('captchaImage');
            if (
image) {
                
image.onload = function() {};
                
image.src this.src '&captchaID='+captchaID+SID_ARG_2ND;
            }
        }
    }
    
    
this.init();
}

var 
captcha = new Captcha(); 
Leider finde ich weder hier noch in der Datenbank die Lösung zu meinem Problem.

(In der Datenbank gibt es eine Tabelle mit Captchas, aber dort werden nur die bereits generierten gespeichert. Wenn ich diese durch meinen Text ersetzt passiert rein gar nichts.)

Ich hoffe ihr könnt mir irgendwie weiterhelfen.

Danke
04/06/2012 23:11 Whoknowsit#2
Da gehört einiges mehr zu, um das Captcha zu ersetzen. Es gab mal ein Plugin namens "Captcha-Ersatz (Fragen)", was deinen Wünschen entsprechen würde. Aber das gibt's scheinbar nicht mehr.

Sowas würde ich an deiner Stelle in irgendwelchen WBB Foren suchen, anstatt hier.

EDIT:

Okay, Text falsch verstanden. Trotzdem würde ich in einem WBB Forum fragen :)