Captcha für create_account

Du hast ein Problem gefunden und weißt nicht genau wo es hinpasst...
Antworten
Dany
Beiträge: 43
Registriert: Mo 7. Jun 2010, 09:50
Shop Version: 1.0.8
Kontaktdaten:

Captcha für create_account

Beitrag von Dany »

Hallo,
zur Zeit bekomme ich viele Spam Anmeldungen.V1.0.8.
Mein Versuch dagegen in der create_account.html:

Code: Alles auswählen

<fieldset>
<div class="floatbox"><label>{#text_sec_code1#}</label>{$VVIMG}</div>
<div class="floatbox"><label>{#text_sec_code2#}</label>{$INPUT_CODE}</div>
</fieldset>
Aus der contact_us kopiert, das Captcha wird aber nicht angezeigt. :(

In der lang_german.conf habe ich

Code: Alles auswählen

text_sec_code1 = 'SPAM-Schutz'
text_sec_code2 = 'Bitte die Zeichen aus der Grafik hier eintragen'
ergänzt, das scheint ok zu sein.
Was fehlt da noch ?
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Captcha für create_account

Beitrag von yogi »

Hi Dany,

in der create_account.php und create_guest_account.php wird das VVIMG vermutlich nicht "erzeugt". Also die Smarty-Variable VVIMG ist gar nicht gesetzt die Du versuchst anzuzeigen.

aus "shop_content.php"

Code: Alles auswählen

$smarty->assign('VVIMG', '<img src="'.xtc_href_link(FILENAME_DISPLAY_VVCODES,htmlspecialchars(time())).'" alt="Captcha" />');
dies könntest du auch direkt im Template aufrufen:

Code: Alles auswählen

{$smarty.const.FILENAME_DISPLAY_VVCODES|xtc_href_link:htmlspecialchars(time())}
Nun wird zwar vermutlich das Captcha angezeigt, jedoch nicht verifiziert - da bei der account Registrierung keine prüfung vorhanden ist.
Hierfür solltest Du den entsprechenden code aus z.B. shop_content.php übernehmen. Die "saubere" integration incl. Fehlermeldung ist jedoch etwas aufwendiger...

Code: Alles auswählen

            if ($_POST['vvcode']!='' || !isset($_SESSION['timestamp_contact']) || time() - $_SESSION['timestamp_contact'] < 10) {
                die("Spam! ");
            }
der Code ist nicht getestet!!!
Antworten