Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Probleme mit Captcha im Newsletter

    majo77

    • Neu im Forum
    • Beiträge: 12
    Probleme mit Captcha im Newsletter
    am: 26. Mai 2011, 19:16:02
    Hallo,

    ich hatte mal Probleme mit dem Captcha. Diese konnte ich aber lösen. Vorher hatte ich aber schon aus der Newsletter Anmeldung den Captcha raus genommen. Das geht auch, wenn man nicht als Kunde im Shop eingeloggt ist. Will man sich aber als eingeloggter Kunde am Newsletter anmelden, kommt die Meldung, dass der Sicherheitscode falsch eingegeben wurde.

    Kann mir jemand sagen wie ich das noch weg bekomme?

    Danke und Gruß



    Linkback: https://www.modified-shop.org/forum/index.php?topic=13193.0

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Probleme mit Captcha im Newsletter
    Antwort #1 am: 26. Mai 2011, 20:23:05
    Das CAPTCHA dient der Sicherheit. Ich frage mich eher warum Du damit Probleme hattest. Kannst Du diese Probleme genauer schildern? Es zu deaktivieren ist m.E. eher die schlechtere Lösung.

    Für die Trunk Version wären m.E. folgende Änderungen nötig im newsletter.php:

    Zeile 74:

    Code: PHP  [Auswählen]
    if (xtc_validate_email(trim($_POST['email'])) && ($_POST['check'] == 'inp') && (strtoupper($_POST['vvcode']) == $_SESSION['vvcode'])) {
    ersetzen mit:

    Code: PHP  [Auswählen]
    if (xtc_validate_email(trim($_POST['email'])) && ($_POST['check'] == 'inp')) {
    dann Zeile 130 restlos entfernen:

    Code: PHP  [Auswählen]
    if (strtoupper($_POST['vvcode']) != $_SESSION['vvcode']) $info_message .= ERROR_VVCODE;
    Zeile 138:

    Code: PHP  [Auswählen]
    if (xtc_validate_email(trim($_POST['email'])) && ($_POST['check'] == 'del') && (strtoupper($_POST['vvcode']) == $_SESSION['vvcode'])) {
    ersetzen mit:

    Code: PHP  [Auswählen]
    if (xtc_validate_email(trim($_POST['email'])) && ($_POST['check'] == 'del')) {
    Zeile 226 kannst Du wahrscheinlich auch restlos löschen:

    Code: PHP  [Auswählen]
    $smarty->assign('INPUT_CODE', xtc_draw_input_field('vvcode', '', 'size="8" maxlength="6"', 'text', false));
    Grüße,
    Tekin

    Viele Grüße,
    Tekin Birdüzen - Zend Certified Engineer

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Probleme mit Captcha im Newsletter
    Antwort #2 am: 26. Mai 2011, 23:47:34
    Trunk ist ein gutes Stichwort.

    Dort funktioniert es nämlich nicht, nimmt Captcha nicht an - also https://demo.modified eCommerce Shopsoftware.org/trunk/newsletter.php
    Hatte es schon vor einigen Wochen gemeldet, hab aber keine Ahnung ob es auf einer Liste steht, oder untergegangen ist.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Probleme mit Captcha im Newsletter
    Antwort #3 am: 27. Mai 2011, 08:34:17
    Die Geschichte mit "strtoupper" hat aber mal funktioniert, da sonst die Leute zusätzlich auf Groß-/Kleinschreibung achten müssten. :(

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Probleme mit Captcha im Newsletter
    Antwort #4 am: 27. Mai 2011, 09:17:13
    [...]
    Hatte es schon vor einigen Wochen gemeldet, hab aber keine Ahnung ob es auf einer Liste steht, oder untergegangen ist.

    Uns sind ja in der Vergangenheit leider wirklich gemeldete Fehler von dir untergegangen und deine Fehlersuche im Trunk wollen wir wirklich nicht missen!

    Erstelle doch in Zukunft lieber pro gesichtetem Fehler ein Thema in "Bugs oder Funktionsfehler" mit dem Präfix "TRUNK:". Das wäre eine große Hilfe und würde das alles schön übersichtlich gestalten. :)

    Grüße

    Torsten

    majo77

    • Neu im Forum
    • Beiträge: 12
    Probleme mit Captcha im Newsletter
    Antwort #5 am: 27. Mai 2011, 23:38:00
    Hallo cYbercOsmOnauT,

    Das CAPTCHA dient der Sicherheit. Ich frage mich eher warum Du damit Probleme hattest. Kannst Du diese Probleme genauer schildern? Es zu deaktivieren ist m.E. eher die schlechtere Lösung.

    Für die Trunk Version wären m.E. folgende Änderungen nötig im newsletter.php:
    [...]

    Was erreiche ich mit diesen Änderungen genau? Kann ich damit meinen Fehler beheben?

    [...] aus der Newsletter Anmeldung den Captcha raus genommen. Das geht auch, wenn man nicht als Kunde im Shop eingeloggt ist. Will man sich aber als eingeloggter Kunde am Newsletter anmelden, kommt die Meldung, dass der Sicherheitscode falsch eingegeben wurde.
    [...]

    Welche "newsletter.php" aus welchem Ordner meinst du?

    Danke und Gruß

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Probleme mit Captcha im Newsletter
    Antwort #6 am: 27. Mai 2011, 23:51:27
    Die "newsletter.php" liegt im Shoproot.

    Grüße

    Torsten

    majo77

    • Neu im Forum
    • Beiträge: 12
    Probleme mit Captcha im Newsletter
    Antwort #7 am: 30. Mai 2011, 23:58:07
    Mein Problem ist, dass ich die erwähnten Code-Stellen von cYbercOsmOnauT nicht finde.

    Hier mal der Code aus meiner "newsletter.php".

    Hier nochmal was mein Problem ist:

    Der Captcha Code wurde aus der Newsletter Anmeldung entfernt! Als nicht eingeloggter Kunde kann man sich am Newsletter anmelden.  Will man sich aber als eingeloggter Kunde am Newsletter anmelden, kommt die Meldung, dass der Sicherheitscode falsch eingegeben wurde.

    Code: PHP  [Auswählen]
    <?php

    /*------------------------------------------------------------------------------
       $Id: newsletter.php,v 1.0

       Copyright (c) 2003 XT-Commerce
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce www.oscommerce.com
       (c) 2003      nextcommerce www.nextcommerce.org

       XTC-NEWSLETTER_RECIPIENTS RC1 - Contribution for XT-Commerce http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))
       by Matthias Hinsche http://www.gamesempire.de

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    require ('includes/application_top.php');

    // create smarty elements
    $smarty = new Smarty;

    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

    // include needed functions
    require_once (DIR_FS_INC.'xtc_render_vvcode.inc.php');
    require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');
    require_once (DIR_FS_INC.'xtc_encrypt_password.inc.php');
    require_once (DIR_FS_INC.'xtc_validate_password.inc.php');

    if (isset ($_GET['action']) && ($_GET['action'] == 'process')) {
            $vlcode = xtc_random_charcode(32);
            $link = xtc_href_link(FILENAME_NEWSLETTER, 'action=activate&email='.xtc_db_input($_POST['email']).'&key='.$vlcode, 'NONSSL');

            // assign language to template for caching
            $smarty->assign('language', $_SESSION['language']);
            $smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
            $smarty->assign('logo_path', HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/');

            // assign vars
            $smarty->assign('EMAIL', xtc_db_input($_POST['email']));
            $smarty->assign('LINK', $link);
            // dont allow cache
            $smarty->caching = false;

            // create mails
            $html_mail = $smarty->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/newsletter_mail.html');
            $txt_mail = $smarty->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/newsletter_mail.txt');

            // Check if email exists

      //BOF - Dokuman - 2009-09-04: convert uppercase Captchas to lowercase, to be more flexible on user input
            //if (($_POST['check'] == 'inp') && ($_POST['vvcode'] == $_SESSION['vvcode'])) {
            if (($_POST['check'] == 'inp') && (strtoupper($_POST['vvcode']) == $_SESSION['vvcode'])) {
      //EOF - Dokuman - 2009-09-04: convert uppercase Captchas to lowercase, to be more flexible on user input

                    $check_mail_query = xtc_db_query("select customers_email_address, mail_status from ".TABLE_NEWSLETTER_RECIPIENTS." where customers_email_address = '".xtc_db_input($_POST['email'])."'");
                    if (!xtc_db_num_rows($check_mail_query)) {

                            if (isset ($_SESSION['customer_id'])) {
                                    $customers_id = $_SESSION['customer_id'];
                                    $customers_status = $_SESSION['customers_status']['customers_status_id'];
                                    $customers_firstname = $_SESSION['customer_first_name'];
                                    $customers_lastname = $_SESSION['customer_last_name'];
                            } else {

                                    $check_customer_mail_query = xtc_db_query("select customers_id, customers_status, customers_firstname, customers_lastname, customers_email_address from ".TABLE_CUSTOMERS." where customers_email_address = '".xtc_db_input($_POST['email'])."'");
                                    if (!xtc_db_num_rows($check_customer_mail_query)) {
                                            $customers_id = '0';
                                            $customers_status = '1';
                                            $customers_firstname = TEXT_CUSTOMER_GUEST;
                                            $customers_lastname = '';
                                    } else {
                                            $check_customer = xtc_db_fetch_array($check_customer_mail_query);
                                            $customers_id = $check_customer['customers_id'];
                                            $customers_status = $check_customer['customers_status'];
                                            $customers_firstname = $check_customer['customers_firstname'];
                                            $customers_lastname = $check_customer['customers_lastname'];
                                    }

                            }

                            $sql_data_array = array ('customers_email_address' => xtc_db_input($_POST['email']), 'customers_id' => xtc_db_input($customers_id), 'customers_status' => xtc_db_input($customers_status), 'customers_firstname' => xtc_db_input($customers_firstname), 'customers_lastname' => xtc_db_input($customers_lastname), 'mail_status' => '0', 'mail_key' => xtc_db_input($vlcode), 'date_added' => 'now()');
                            xtc_db_perform(TABLE_NEWSLETTER_RECIPIENTS, $sql_data_array);

                            $info_message = TEXT_EMAIL_INPUT;

                            if (SEND_EMAILS == true) {
                                    xtc_php_mail(EMAIL_SUPPORT_ADDRESS, EMAIL_SUPPORT_NAME, xtc_db_input($_POST['email']), '', '', EMAIL_SUPPORT_REPLY_ADDRESS, EMAIL_SUPPORT_REPLY_ADDRESS_NAME, '', '', TEXT_EMAIL_SUBJECT, $html_mail, $txt_mail);
                            }

                    } else {
                            $check_mail = xtc_db_fetch_array($check_mail_query);

                            if ($check_mail['mail_status'] == '0') {

                                    $info_message = TEXT_EMAIL_EXIST_NO_NEWSLETTER;
    // BOF - speedy - 2010-03-31 - Erweiterter Newsletter Premium v3.2 (mit Gruppen-Preisen)
                                    $mail_key_query = "UPDATE " . TABLE_NEWSLETTER_RECIPIENTS . " SET  = '" . $vlcode."' WHERE customers_email_address='" . xtc_db_input($_POST['email']) . "' ";
                            $mail_key_query = xtc_db_query($mail_key_query);
    // EOF - speedy - 2010-03-31 - Erweiterter Newsletter Premium v3.2 (mit Gruppen-Preisen)

                                    if (SEND_EMAILS == true) {
                                            xtc_php_mail(EMAIL_SUPPORT_ADDRESS, EMAIL_SUPPORT_NAME, xtc_db_input($_POST['email']), '', '', EMAIL_SUPPORT_REPLY_ADDRESS, EMAIL_SUPPORT_REPLY_ADDRESS_NAME, '', '', TEXT_EMAIL_SUBJECT, $html_mail, $txt_mail);
                                    }

                            } else {
                                    $info_message = TEXT_EMAIL_EXIST_NEWSLETTER;
                            }

                    }

            } else {
                    $info_message = TEXT_WRONG_CODE;
            }

      //BOF - Dokuman - 2009-09-04: convert uppercase Captchas to lowercase, to be more flexible on user input
            //if (($_POST['check'] == 'del') && ($_POST['vvcode'] == $_SESSION['vvcode'])) {
            if (($_POST['check'] == 'del') && (strtoupper($_POST['vvcode']) == $_SESSION['vvcode'])) {
      //BOF - Dokuman - 2009-09-04: convert uppercase Captchas to lowercase, to be more flexible on user input

                    $check_mail_query = xtc_db_query("select customers_email_address from ".TABLE_NEWSLETTER_RECIPIENTS." where customers_email_address = '".xtc_db_input($_POST['email'])."'");
                    if (!xtc_db_num_rows($check_mail_query)) {
                            $info_message = TEXT_EMAIL_NOT_EXIST;
                    } else {
                            $del_query = xtc_db_query("delete from ".TABLE_NEWSLETTER_RECIPIENTS." where customers_email_address ='".xtc_db_input($_POST['email'])."'");
                            $info_message = TEXT_EMAIL_DEL;
                    }
            }
    }

    // Accountaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'activate')) {
            $check_mail_query = xtc_db_query("select mail_key from ".TABLE_NEWSLETTER_RECIPIENTS." where customers_email_address = '".xtc_db_input($_GET['email'])."'");
            if (!xtc_db_num_rows($check_mail_query)) {
                    $info_message = TEXT_EMAIL_NOT_EXIST;
            } else {
                    $check_mail = xtc_db_fetch_array($check_mail_query);
                    if (!$check_mail['mail_key'] == $_GET['key']) {
                            $info_message = TEXT_EMAIL_ACTIVE_ERROR;
                    } else {
                            xtc_db_query("update ".TABLE_NEWSLETTER_RECIPIENTS." set mail_status = '1' where customers_email_address = '".xtc_db_input($_GET['email'])."'");
                            $info_message = TEXT_EMAIL_ACTIVE;
                    }
            }
    }

    // Accountdeaktivierung per Emaillink
    if (isset ($_GET['action']) && ($_GET['action'] == 'remove')) {
            $check_mail_query = xtc_db_query("select customers_email_address,
                                               mail_key
                                        from "
    .TABLE_NEWSLETTER_RECIPIENTS."
                                        where customers_email_address = '"
    .xtc_db_input($_GET['email'])."'
                                        and mail_key = '"
    .xtc_db_input($_GET['key'])."'");
            if (!xtc_db_num_rows($check_mail_query)) {
                    $info_message = TEXT_EMAIL_NOT_EXIST;
            } else {
                    $check_mail = xtc_db_fetch_array($check_mail_query);
                    if (!xtc_validate_password($check_mail['customers_email_address'], $_GET['key'])) {
                            $info_message = TEXT_EMAIL_DEL_ERROR;
                    } else {
                            $del_query = xtc_db_query("delete from ".TABLE_NEWSLETTER_RECIPIENTS." where  customers_email_address ='".xtc_db_input($_GET['email'])."' and mail_key = '".xtc_db_input($_GET['key'])."'");
                            $info_message = TEXT_EMAIL_DEL;
                    }
            }
    }

    $breadcrumb->add(NAVBAR_TITLE_NEWSLETTER, xtc_href_link(FILENAME_NEWSLETTER, '', 'NONSSL'));

    require (DIR_WS_INCLUDES.'header.php');

    //BOF - Dokuman - 2009-11-02 - Fix lost session on newsletter subscription
    //$smarty->assign('VVIMG', '<img src="'.DIR_WS_CATALOG.FILENAME_DISPLAY_VVCODES.'" alt="Captcha" />');
    $smarty->assign('VVIMG', '<img src="'.xtc_href_link(FILENAME_DISPLAY_VVCODES, 't='. time(), 'NONSSL') .'" alt="Captcha" />');
    //EOF - Dokuman - 2009-11-02 - Fix lost session on newsletter subscription

    $smarty->assign('text_newsletter', TEXT_NEWSLETTER);
    $smarty->assign('info_message', $info_message);
    $smarty->assign('FORM_ACTION', xtc_draw_form('sign', xtc_href_link(FILENAME_NEWSLETTER, 'action=process', 'NONSSL')));
    $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', xtc_db_input($_POST['email'])));
    $smarty->assign('INPUT_CODE', xtc_draw_input_field('vvcode', '', 'size="6" maxlength="6"', 'text', false));
    $smarty->assign('CHECK_INP', xtc_draw_radio_field('check', 'inp'));
    $smarty->assign('CHECK_DEL', xtc_draw_radio_field('check', 'del'));
    $smarty->assign('BUTTON_SEND', xtc_image_submit('button_send.gif', IMAGE_BUTTON_LOGIN));
    $smarty->assign('FORM_END', '</form>');

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/newsletter.html');
    $smarty->assign('main_content', $main_content);

    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = 0;
    if (!defined(RM))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>
    7 Antworten
    4766 Aufrufe
    28. Mai 2011, 15:11:53 von Tomcraft
    2 Antworten
    2339 Aufrufe
    11. November 2010, 11:15:44 von Viol
    2 Antworten
    2102 Aufrufe
    02. November 2012, 14:53:05 von amandah
    5 Antworten
    3178 Aufrufe
    27. Oktober 2011, 18:18:40 von Tomcraft
               
    anything