giller Posted February 13, 2011 Report Share Posted February 13, 2011 Hallo Leute, wie bekomme ich es hin das ich bei dem Anmeldeformular nur einmal die eMail abfrage und es keine Fehlermeldung gibt? Link to comment Share on other sites More sharing options...
objekt Posted February 13, 2011 Report Share Posted February 13, 2011 ich find es für die sicherheit für den kunden selbst sinnvoll, dass die E-Mail Abfrage 2x gemacht werden muss... ein kleiner schreibfehler reicht aus und dann gibt es chaos... Link to comment Share on other sites More sharing options...
giller Posted February 13, 2011 Author Report Share Posted February 13, 2011 wie oft verschreibst du dich bei der eingabe deiner email Link to comment Share on other sites More sharing options...
objekt Posted February 13, 2011 Report Share Posted February 13, 2011 das sollten wir nicht diskutieren^^ stell die vor, eine Kunde verschreibt sich, und dann jammert er, dass er keine mails bekommt, das die ware versendet wurde, dass die Zahlungbestätigung kommt etc... Link to comment Share on other sites More sharing options...
giller Posted February 14, 2011 Author Report Share Posted February 14, 2011 Genau das sollten wir nicht diskutieren. 1. Verschreiber der eMail sind nicht all zu häufig sonst würden nicht soviele die doppelt eingabe weg rationalisieren. 2. In den fällen wo es Probleme gibt kann man sie ja manuel ändern. z.b fals ein mail no deliverie kommt gleich auf der rechnung drauf hinweisen. 3. Und das formular zu kürzen hatt ein mehr wert (da is mir die 2% fehleingabe wohl egal wenn es 20% mehr conservation bedeutet) Ich glaub noch vernünftiger kann man es nicht begründen obwohl ein punkt gibt es noch aber wir wollen ja nicht alles veraten Link to comment Share on other sites More sharing options...
xenon777 Posted February 14, 2011 Report Share Posted February 14, 2011 Ich habe dies bei mir realisiert: 1. Nur eine Email zum eingeben ==> Es wird nur ein Feld angezeigt zum eingeben ==> Es wird nicht geprüft auf das zweite Email-Feld ==> Es wird allerdings geprüft ob die Email einen gültigen Syntax hat (z. B. @-Zeichen und Punkt in der Email, auch die Mindestlänge wird geprüft) 2. Email habe ich ebenfalls als Pflichtfeld realisiert. Ich kann dir allerdings erst später die Änderung vom Code geben da ich gerade nicht an meinen Webspace komme ;-) Grüße Link to comment Share on other sites More sharing options...
giller Posted February 14, 2011 Author Report Share Posted February 14, 2011 Ich warte gern hast auch pn Link to comment Share on other sites More sharing options...
xenon777 Posted February 15, 2011 Report Share Posted February 15, 2011 Hat doch bisschen länger gedauert Modifizierungen: login.html (DEIN_TEMPLATE => xtCore => pages) <tr> <td>{txt key=TEXT_EMAIL}:</td> <td>{form type=text name=cust_info[customers_email_address] value=$cust_info.customers_email_address note=*}</td> </tr> [COLOR="red"] <tr> <td>{txt key=TEXT_EMAIL_CONFIRM}:</td> <td>{form type=text name=cust_info[customers_email_address_confirm] value=$cust_info.customers_email_address_confirm note=*}</td> </tr>[/COLOR] Der Code in rot muss raus, entweder auskommentieren oder löschen. class.customer.php (xtFramework => classes) Suche die Funktion: "function _checkCustomerData" if($check_data == true){ $this->_checkLenght($data['customers_email_address'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); [COLOR="red"]$this->_checkLenght($data['customers_email_address_confirm'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); $this->_checkMatch($data['customers_email_address'], $data['customers_email_address_confirm'], ERROR_EMAIL_ADDRESS_NOT_MATCHING);[/COLOR] $this->_checkEmailAddress($data['customers_email_address'], ERROR_EMAIL_ADDRESS_SYNTAX); Der Code in rot muss raus, entweder auskommentieren oder löschen. VORSICHT: Ist ein Core-Mod, wird beim nächsten Update überschrieben, also lieber mal merken Link to comment Share on other sites More sharing options...
mzanier Posted February 15, 2011 Report Share Posted February 15, 2011 evtl besser über einen hook einfach customers_email_address_confirm=customers_email_address setzen, dann ist das auch update-sicher. zb über class.customer.php:_registerCustomer_top $data['customers_email_address_confirm']=$data['customers_email_address']; müsste ansich genügen. Link to comment Share on other sites More sharing options...
xenon777 Posted February 15, 2011 Report Share Posted February 15, 2011 evtl besser über einen hook einfach customers_email_address_confirm=customers_email_address setzen, dann ist das auch update-sicher. zb über class.customer.php:_registerCustomer_top müsste ansich genügen. Hallo Herr Zanier, dies ist ein sehr interessanter Ansatz. Wenn ich dies richtig verstanden habe dann wäre die Lösung über ein Plugin welches die "confirm email" gleichsetzt mit der "ersten eingegebenen email" ? Quasi: SET customers_email_address_confirm = customers_email_address Habe ich dies so richtig verstanden? Grüße Link to comment Share on other sites More sharing options...
mzanier Posted February 15, 2011 Report Share Posted February 15, 2011 Wenn ich dies richtig verstanden habe dann wäre die Lösung über ein Plugin welches die "confirm email" gleichsetzt mit der "ersten eingegebenen email" ? ja. es sollte dann diese zeile reichen, und im template kann man die abfrage entfernen. fürn den core bringt das gleichsetzen dann einfach den effekt als ob es auch 2 mal korrekt eingegeben wurde. Link to comment Share on other sites More sharing options...
xenon777 Posted February 15, 2011 Report Share Posted February 15, 2011 fürn den core bringt das gleichsetzen dann einfach den effekt als ob es auch 2 mal korrekt eingegeben wurde. Stimmt, somit blende ich nur im Template in der login.html das zusätzliche Email-Adressfeld aus. Wird ja dann sowieso gleichgesetzt. Und die Abfrage in der Check-Funktion kann dann ruhig einkommentiert bleiben weil diese immer ein TRUE liefern wird Hehe, mal ausprobieren.... Grüße Link to comment Share on other sites More sharing options...
xtphilip Posted February 15, 2011 Report Share Posted February 15, 2011 Hallo zusammen, ich habe folgendes Problem: Ein Benutzer hat seine Email-Adresse falsch eingegeben und bekommt keine Email zu gesendet. Wie kann ich auf den Fehler reagieren? Ich würde gerne den Fehler abfangen und dem Benutzer gleich sagen, dass seine Email-Adresse falsch eingegeben worde ist. unrouteable mail domain [email protected] Vielen Dank für die Antwort Link to comment Share on other sites More sharing options...
xenon777 Posted February 15, 2011 Report Share Posted February 15, 2011 Hallo zusammen, ich habe folgendes Problem: Ein Benutzer hat seine Email-Adresse falsch eingegeben und bekommt keine Email zu gesendet. Wie kann ich auf den Fehler reagieren? Ich würde gerne den Fehler abfangen und dem Benutzer gleich sagen, dass seine Email-Adresse falsch eingegeben worde ist. unrouteable mail domain [email protected] Vielen Dank für die Antwort Hä? Wie willst du denn einen Anwender-/Benutzerfehler abfangen? Muss der Benutzer seine Email 2x eingeben? Link to comment Share on other sites More sharing options...
xtphilip Posted February 15, 2011 Report Share Posted February 15, 2011 Ich würde gerne programmiertechnisch drauf reagieren. Ich setzte den ganzen Registrierungsvorgang inklusive Email-Versand innerhalb einer Transaktion. D. h. wenn der Registrierungsvorgang schiff geht, dann wird der Benutzer nicht registriert bis er seine Email-Adresse korrigiert hat. Das ist unerheblich davon, ob zwei Felder für die Email-Eingabe benötigt werden. Denn der Benutzer kann seine Email-Adresse zweimal falsch eingegeben haben. Oder ich reagiere auf eine Fehler, der ja irgendwie geworfen werden muss. Wenn dieser auftritt, dann gehe ich wie oben vor. Es muss doch irgendeine Lösung hierzu geben???!!! Oder? Link to comment Share on other sites More sharing options...
mzanier Posted February 15, 2011 Report Share Posted February 15, 2011 email addresse in funktion _checkEmailAddress() gegen den MX server checken lassen. Verhindert aber auch nicht die eingabe einer falschen emailadresse, sondern nur die einer nicht existierenden (sofern der MX auch hierzu korrekt antwortet) Link to comment Share on other sites More sharing options...
giller Posted February 15, 2011 Author Report Share Posted February 15, 2011 email addresse in funktion _checkEmailAddress() gegen den MX server checken lassen. Verhindert aber auch nicht die eingabe einer falschen emailadresse, sondern nur die einer nicht existierenden (sofern der MX auch hierzu korrekt antwortet) Ja genau das ist das Problem der MX wird diese anfrage meist garnicht beantworten. Da meist die erste Anfrage vom MX nicht reagiert wird um Spam zu vermeiden. Die einzige möglichkeit ist der versandt einer mail um zu sehen ob sie zustelbar ist bloss da gibt es das problem das die meldung von einer nicht zustelbaren mail schon mal einige stunden auf sich warten lässt. Also mit anderen Worten es ist eigentlich nur möglich in kurzer zeit zu prüfen ob die mail syntax konform ist. Link to comment Share on other sites More sharing options...
plusx Posted February 16, 2011 Report Share Posted February 16, 2011 Hallo, der Code ist nicht ganz richtig. So funktioniert es: $data['cust_info']['customers_email_address_confirm']=$data['cust_info']['customers_email_address']; Ich habe mal eine Plugin geschrieben. Einfach in den Plugin-Ordner kopieren, im Backend installieren und aktivieren. Im Template kann dann das zweite Eingabefeld für E-Mail gelöscht werden. EDIT: Anbei eine neue Version mit dem richtigen Code Gruß Marco von PLUSXno_email_confirmation.zip Link to comment Share on other sites More sharing options...
xenon777 Posted February 16, 2011 Report Share Posted February 16, 2011 Hi Marco, danke für das Plugin Hier noch 2 Anmerkungen. 1. Du solltes die richtige Zeile in den Hookpoint vom Plugin nehmen. Wie du schon geschrieben hast muss folgendes rein: $data['cust_info']['customers_email_address_confirm']=$data['cust_info']['customers_email_address']; Du hast im Plugin leider noch die falsche Zeile im Hookpoint 2. Wenn man nun keine Email eingibt erscheint folgende Fehlermeldung doppelt was nicht schön aussieht: Bitte geben Sie eine E-Mail Adresse an Ich habe dies via 2ten Hookpoint im Plugin nicht hinbekommen. Also musste ich dazu doch noch ein kleinwenig den Core (class.customer.php) verändern indem ich folgende Zeile gelöscht habe: $this->_checkLenght($data['customers_email_address_confirm'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); Im Prinzip ist diese Zeile ja völlig überflüssig da die Länge von der confirm-email ja mit der eingegebenen dank deinem Plugin gleich sein MUSS ! Gibts da eine Möglichkeit dies via Hookpoint zu lösen dass die Fehlermeldung nicht doppelt ausgegeben wird? Ich weis ja woran es liegt, kanns aber via Plugin nicht verhindern. Ich habe es über diesen Hook versucht: class.customer.php:_CustomerData_check Grüße Link to comment Share on other sites More sharing options...
mzanier Posted February 16, 2011 Report Share Posted February 16, 2011 Gibts da eine Möglichkeit dies via Hookpoint zu lösen dass die Fehlermeldung nicht doppelt ausgegeben wird? Ich weis ja woran es liegt, kanns aber via Plugin nicht verhindern. ja, über nen hook in der class.Info_handler.php kicken. Link to comment Share on other sites More sharing options...
plusx Posted February 17, 2011 Report Share Posted February 17, 2011 Hallo, in der neuen Version oben, werden die Meldungen unterdrückt. Leider nur für DE gültig, da ich keine anderen Sprachversionen installiert habe und somit den Abfragetext nicht kenne. Gruß Marco Link to comment Share on other sites More sharing options...
xenon777 Posted February 17, 2011 Report Share Posted February 17, 2011 Cool, thx Kann es sein dass nun beide Error-Messages unterdrückt werden? "Bitte geben Sie eine E-Mail Adresse an" wird ja für folgende beiden verwendet: $this->_checkLenght($data['customers_email_address'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); $this->_checkLenght($data['customers_email_address_confirm'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); Ich bin mir nicht sicher wie man nur die Error-Message für die confirm-email unterdrücken kann..... Link to comment Share on other sites More sharing options...
mzanier Posted February 17, 2011 Report Share Posted February 17, 2011 Cool, thx Kann es sein dass nun beide Error-Messages unterdrückt werden? "Bitte geben Sie eine E-Mail Adresse an" wird ja für folgende beiden verwendet: $this->_checkLenght($data['customers_email_address'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); $this->_checkLenght($data['customers_email_address_confirm'], _STORE_EMAIL_ADDRESS_MIN_LENGTH, ERROR_EMAIL_ADDRESS); Ich bin mir nicht sicher wie man nur die Error-Message für die confirm-email unterdrücken kann..... foreach durchs array gehen, und beim finden des ersten vorkommens löschen und dann foreach abbrechen, dann bleibt die zweite meldung erhalten. Link to comment Share on other sites More sharing options...
plusx Posted February 17, 2011 Report Share Posted February 17, 2011 Richtig, die Meldungen werden unterdrückt. Es gibt aber weiterhin die Meldung "Bitte geben Sie eine gültige E-Mail an", das beinhaltet ja schon die Aussage von der Meldung "Bitte geben Sie eine E-Mail Adresse an". Link to comment Share on other sites More sharing options...
xenon777 Posted February 17, 2011 Report Share Posted February 17, 2011 foreach durchs array gehen, und beim finden des ersten vorkommens löschen und dann foreach abbrechen, dann bleibt die zweite meldung erhalten. Ahhhhhh....zu aufwändig für ein bisschen Kosmetik. Da lösche ich doch lieber nach dem Update eine Zeile aus der class Warum eigentlich nicht so? if($data['customers_email_address'] != ''){ $this->_checkEmailAddress($data['customers_email_address'], ERROR_EMAIL_ADDRESS_SYNTAX); } Somit würde bei einer leeren Email-Angabe nicht der Syntax geprüft werden. Hoffentlich nerve ich euch nicht....hehehe Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.