Firmenadressen als solches erkennen ...
Hansi H.
- javascript
Hallo @all,
Zum Problem: Der Kunde der was im eShop bestellen möchten, kann keine Bestellung auf Rechnung an eine Firma tätigen, das muss ich unterbinden.
Ich löse das erstmal Frontet mit JavaScript, indem ich das Feld wo die Firma eingetragen werden kann (Firma ist erlaubt beim Kauf auf Nachnahme oder KK) nach den bekannten Rechtsformen suche.
var rList = new Array("GbR", "eG", "GmbH", "GmbHG", "gGmbH", "GesmbH", "KG", "KGaA", "OHG", "OEG", "KEG", "OG", "AG", "AktG", "InvAG", "GenG", "gAG", "Co.", "Ltd.", "Inc.");
So, der einfache Kunde wird sich geschlagen geben, der hartnäckige wird versuchen das Script zu Umgehen indem er "Müller & Sohn G m b H" oder so eingibt, dann hat er erstmal mein Script überlistet.
Gibt es eine sicherere Methode dies zu unterbinden?
Bin offen für jeden Tipp, danke!
@@Hansi H.:
nuqneH
der hartnäckige wird versuchen das Script zu Umgehen indem er "Müller & Sohn G m b H" oder so eingibt
oder solche Dinge wie GmbH ganz weglässt.
Gibt es eine sicherere Methode dies zu unterbinden?
Die Frage dürfte beantwortet sein.
Qapla'
»» Gibt es eine sicherere Methode dies zu unterbinden?
Die Frage dürfte beantwortet sein.
OK OK, das war mir schon klar das man sowas nicht zu 100% filtern kann, aber es gibt sicherlich eine Methode die besser ist als meine ;)
OK OK, das war mir schon klar das man sowas nicht zu 100% filtern kann, aber es gibt sicherlich eine Methode die besser ist als meine ;)
a) Prüfe die Sache serverseitig - damit schließst du Fälle aus, in denen JavaScript schlichtweg deaktiviert wird oder nicht vorhanden ist.
b) Prüfe die false-negative-Ergebnisse und erweitere ggf. deine Prüfroutine
c) Versende keine Auftragsbestätigung nach der Bestellung (das tut man sowieso nicht), damit wird auch wenn jemand nicht bestellen können sollte kein Vertrag abgeschlossen, der nicht erfüllt werden kann.
d) Bearbeitete dennoch ankommende false-negative-Bestellungen per Hand und informiere die Kunden.
a) Prüfe die Sache serverseitig - damit schließst du Fälle aus, in denen JavaScript schlichtweg deaktiviert wird oder nicht vorhanden ist.
Sowieso!
Aber ohne JS ist der Shop nicht benutzbar, das wissen die Kunden schon.
b) Prüfe die false-negative-Ergebnisse und erweitere ggf. deine Prüfroutine
OK.
c) Versende keine Auftragsbestätigung nach der Bestellung (das tut man sowieso nicht), damit wird auch wenn jemand nicht bestellen können sollte kein Vertrag abgeschlossen, der nicht erfüllt werden kann.
Das machen wir nicht, jedenfalls nicht so!
d) Bearbeitete dennoch ankommende false-negative-Bestellungen per Hand und informiere die Kunden.
Uiii, da wird sich unser Kundencenter aber freuen ;)
»» d) Bearbeitete dennoch ankommende false-negative-Bestellungen per Hand und informiere die Kunden.
Uiii, da wird sich unser Kundencenter aber freuen ;)
Irgendwer muss es ja machen - wie schon gesagt wurde gibt es für dieses soziale Problem keine technische Lösung. Wenn jemand jetzt also doch als Firma mit einer falschen Bezahlmethode bestellt, was tun? Dennoch mit der falschen Bezahlmethode abwickeln (damits der Kunde nächstes mal wieder tut), die Bestellung ignorieren oder doch lieber den Kunden informieren und ihm eine andere Bezahlmethode vorschlagen?
echo $begrüßung;
OK OK, das war mir schon klar das man sowas nicht zu 100% filtern kann, aber es gibt sicherlich eine Methode die besser ist als meine ;)
Soziale Probleme lassen sich meist sehr schlecht technisch lösen. Besser ist es, die Kunden per Text auf die Problematik hinzuweisen und erst nach händischer Prüfung eine verbindliche Zusage/Bestätigung zu geben.
echo "$verabschiedung $name";
erst nach händischer Prüfung eine verbindliche Zusage/Bestätigung zu geben.
Hallo @all,
Zum Problem: Der Kunde der was im eShop bestellen möchten, kann keine Bestellung auf Rechnung an eine Firma tätigen, das muss ich unterbinden.
(...)
Ich habe gleich mehrere Tips:
Das Ergebnis sieht etwa so aus:
if (name.toLowerCase().match(/\b(g\W*b\W*r|g?e?s?\W*g\W*m\W*b\W*h\W*g?|[aeok]\W*g|a\W*k\W*t\W*g|k\W*g\W*a\W*a|o\W*h\W*g|i\W*n\W*v\W*a\W*g|c\W*o\W*\.|l\W*t\W*d\W*\.|i\W*n\W*c\W*\.)\b/)) { alert('Achtung, sie haben einen Firmennamen angegeben!') }
Die \W* sind dazu da, nicht-alphanumerische Zeichen abzufangen, die man bösartigerweise dazu mißbrauchen könnte, um die Regexp zu täuschen.
Nebenbei: perfekt sind solche Mechanismen nicht. Du solltest immer noch 1. serverseitig und 2. unter Verwendung einer menschlichen Intelligenz prüfen.
Gruß, LX
Nebenbei: perfekt sind solche Mechanismen nicht. Du solltest immer noch 1. serverseitig und 2. unter Verwendung einer menschlichen Intelligenz prüfen.
Danke, werde mal gleich den RegExp übernehmen.
Er funktioniert sogar, leider nicht auf alle Rechtsformen, aber immerhin zu 80%. Hin und wieder wird mal eine Bestellung durchgehen, kann man nicht verhindern!
Es bleibt Dir überlassen, weitere Rechtsformen hinzuzufügen - das ist durchaus kein Hexenwerk.
Gruß, LX
Gibt es eine sicherere Methode dies zu unterbinden?
Was machst du denn bei einer Personengesellschaft? Da heisst die Firma genauso wie der Inhaber ohne irgendwelche Zusätze.