Passwort vergessen, Meldung ausgeben, das Email zu keinem Kundenkonto gehört

In der “Passwort vergessen” Funktion wird ja überprüft.

  1. ob das Feld leer ist
  2. mit der oxinputvalidator.js die Syntax der Eingabe, also on ein @Zeichen usw. vorhanden ist.

Ist die Syntax ok aber die eingegebene Email keinem passwortgeschützen also registrierten Kundenkonto zuzuordnen ist, kann ich die Email nicht absenden. Dass ist auch richtig so, aber ich würde da gerne eine Meldung ausgeben wie: Email konnte keinem Kundenkonto zugeordnet werden.
Habe schon einiges probiert, komme aber nicht weiter.


Das ist die Funktion in der forgotpwd.php

$iSuccess = false;
if ($sEmail) {
$iSuccess = $oEmail->sendForgotPwdEmail($sEmail);
}

if ($iSuccess !== true){
$sError = ($iSuccess === false) ? ‘MESSAGE_NOT_ABLE_TO_SEND_EMAIL’ : ‘’;
oxRegistry::get(“oxUtilsView”)->addErrorToDisplay($sError);

$this->_sForgotEmail = false;
}
}


Das ist das Template in der forgotpwd_email.tpl
wo die Fehlermeldung per SCRIPT überprüft wird

[{oxmultilang ident="ERROR_MESSAGE_INPUT_NOTALLFIELDS"}] [{oxmultilang ident="ERROR_MESSAGE_INPUT_NOVALIDEMAIL"}] [{include file="message/inputvalidation.tpl" aErrors=$aErrors.oxuser__oxusername}]


und hier die oxinputvalidator.js wo die Sytax der Email überprüft wird.

         */
        isEmail: function( email )
        {
            email = jQuery.trim(email);

            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

            if(reg.test(email) == false) {
                return false;
            }

            return true;
        },

        /**
         * Checks is string equal
         *
         * @return boolean
         */
        isEqual: function( stValue1, stValue2 )
        {
            stValue1 = jQuery.trim(stValue1);
            stValue2 = jQuery.trim(stValue2);

            if (stValue1 == stValue2){
                return true;
            }

            return false;
        }
    };

/**
 * Form Items validator
 */
$.widget("ui.oxInputValidator", oxInputValidator );

} )

Wenn ich die {$sError}] Variable von der forgotpwd.php ins Template schreibe, also in forgotpwd.tpl
passiert nichts. Ich weiß nicht wie ich das mache.
Weil, wenn ich die Zeile mit echo ausgebe wird mir die Meldung"MESSAGE_NOT_ABLE_TO_SEND_EMAIL" angezeigt nur im Template funktioniert das nicht. Oder muss ich das mit Javascript lösen?

Version ist Azure ver. 4.10

ich würde vor der Ausgabe der Fehlermeldung erstmal prüfen ob die E-Mail in DB vorhanden ist:

das wäre allerdings datenschutztechnisch doof, da man auf diesen Wege herausfinden könnte, ob eine bestimmte Email Adresse in deiner DB vorhanden ist und mit dem gewonnenen Wissen dann Unfug betreiben.
Deswegen lautet auch die Fehlermeldung beim fehlgeschlagenen Login nicht “wir kennen diese Email Adresse nicht”, sondern “Es existiert keine KOmbination aus dieser Email + Passwort”, damit man nicht ableiten könnte, wer bei dir im Shop Kunde ist und wer nicht,

1 Like

hatte das auch übersehen:
hier gehts ja um Passwort vergessen (ohne Passworteingabe) → wenn die Email rausgeht, ist sie richtig !

Unter Datenschutzbedingungen hab ich das noch garnicht bedacht. Stimmt ja. Hätte es aber trotzdem gut gefunden wenn es da ne schnelle Lösung gegeben hätte. Naja trotzdem Danke!

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.