Prüfcode im Kontaktformular ausgeklammert, trotzdem Fehlermeldung

N´abend zusammen,

ich bräuchte da nochmal eine kurze Hilfestellung. Ich möchte im Kontaktformular die Prüfcodeeingabe ausklammern, weil ich das nicht so Benutzerfreundlich finde.

Ich habe nur folgenden Beitrag gefunden, indem erwähnt wird, dass man es im Backend nicht deaktivieren kann:
http://forum.oxid-esales.com/showthread.php?t=1197&highlight=captcha

Gut, dann eben selber Hand anlegen in meinem Child:
tpl/form/contact.tpl
also aus dem Azure-Theme kopiert und folgende Änderungen vorgenommen.

Hier:

<div>
        [{ $oViewConf->getHiddenSid() }]
        <input type="hidden" name="fnc" value="send"/>
        <input type="hidden" name="cl" value="contact"/>
        [{assign var="oCaptcha" value=$oView->getCaptcha() }]
        [{*<input type="hidden" name="c_mach" value="[{$oCaptcha->getHash()}]"/>*}]
    </div>

also den letzten input type ausgeklammert…
und hier weiter unten:

<li>
            <label>[{ oxmultilang ident="FORM_CONTACT_MESSAGE" }]</label>
            <textarea rows="15" cols="70" name="c_message" class="areabox">[{$oView->getContactMessage()}]</textarea>
        </li>
        [{*<li class="verify">
            <label class="req">[{ oxmultilang ident="FORM_CONTACT_VERIFICATIONCODE" }]</label>
            [{assign var="oCaptcha" value=$oView->getCaptcha() }]
            [{if $oCaptcha->isImageVisible()}]
                <img src="[{$oCaptcha->getImageUrl()}]" alt="">
            [{else}]
                <span class="verificationCode" id="verifyTextCode">[{$oCaptcha->getText()}]</span>
            [{/if}]
            <input type="text" data-fieldsize="verify" name="c_mac" value="" class="js-oxValidate js-oxValidate_notEmpty">
            <p class="oxValidateError">
                <span class="js-oxError_notEmpty">[{ oxmultilang ident="EXCEPTION_INPUT_NOTALLFIELDS" }]</span>
            </p>
        </li>*}]
        <li class="formNote">
            [{ oxmultilang ident="FORM_CONTACT_COMPLETEMARKEDFIELDS2" }]
        </li>
        <li>
            <button class="submitButton largeButton" type="submit">[{ oxmultilang ident="FORM_CONTACT_SEND" }]</button>
        </li>

Die Ansicht sieht gut aus, kein Prüfcode mehr da. Aber eine Fehlermeldung erhalte ich trotzdem:
“Der Prüfcode, den Sie eingegeben haben, ist nicht korrekt. Bitte versuchen Sie es erneut”.

Was habe ich vergessen ?
(Views upgedated und tmp habe ich auch geleert.)

Danke und beste Grüße
Thomas

nur weil es kein Feld mehr gibr, wo du Captcha eingeben hast, heißt es nicht, dass es nicht mehr geprüft wird…
Ich denke, da müsste man die Kontakt-Funktion manipulieren

das dachte ich mir auch bereits. Maybe wird das ja über den Button “FORM_CONTACT_SEND” beim Klick abgefragt. Nun frage ich mich dann aber, wo ich den Button bzw. diese Kontakt-Funktion finde…

schau mal den Quellcode an, in dem Formular findest du u.a. Felder
<input name=“cl” value=“xyz” />
und <input name=“fnc” value=“abcd” />

Das bedeutet, dass nach dem Abschicken die Funktion “abcd” in der Klasse “xyz” ausgeführt wird

Moinsen,

ich habe es hinbekommen. Ich habe nach einer contact.php gesucht, diese findet man unter application/controller/contact.php
Dort habe ich ungefähr in der Mitte die Captcha Abfrage ausgeklammert:

/**
     * Composes and sends user written message, returns false if some parameters
     * are missing.
     *
     * @return bool
     */
    public function send()
    {
        $aParams = oxConfig::getParameter( 'editval' );

        // checking email address
        if ( !oxRegistry::getUtils()->isValidEmail( $aParams['oxuser__oxusername'] ) ) {
            oxRegistry::get("oxUtilsView")->addErrorToDisplay( 'EXCEPTION_INPUT_NOVALIDEMAIL' );
            return false;
        }

        // spam spider prevension
        $sMac     = oxConfig::getParameter( 'c_mac' );
        $sMacHash = oxConfig::getParameter( 'c_mach' );
        $oCaptcha = $this->getCaptcha();

        /*if ( !$oCaptcha->pass( $sMac, $sMacHash ) ) {
            // even if there is no exception, use this as a default display method
            oxRegistry::get("oxUtilsView")->addErrorToDisplay( 'EXCEPTION_INPUT_WRONGCAPTCHA' );
            return false;
        } */

        $sSubject = oxConfig::getParameter( 'c_subject' );
        if ( !$aParams['oxuser__oxfname'] || !$aParams['oxuser__oxlname'] || !$aParams['oxuser__oxusername'] || !$sSubject ) {
            // even if there is no exception, use this as a default display method
            oxRegistry::get("oxUtilsView")->addErrorToDisplay( 'EXCEPTION_INPUT_NOTALLFIELDS' );
            return false;
        }

        $oLang = oxRegistry::getLang();
        $sMessage  = $oLang->translateString( 'CONTACT_FROM' ) . " " .
                     $oLang->translateString( $aParams['oxuser__oxsal'] ) ." " .
                     $aParams['oxuser__oxfname'] . " " .
                     $aParams['oxuser__oxlname'] . "(" .$aParams['oxuser__oxusername'] . ")<br /><br />" .
                     nl2br( oxConfig::getParameter( 'c_message' ) );

        $oEmail = oxNew( 'oxemail' );
        if ( $oEmail->sendContactMail( $aParams['oxuser__oxusername'], $sSubject, $sMessage ) ) {
            $this->_blContactSendStatus = 1;
        } else {
            oxRegistry::get("oxUtilsView")->addErrorToDisplay('ERROR_MESSAGE_CHECK_EMAIL');
        }
    }

Nun funktioniert das so, wie ich es möchte.