Betrageingabe(Geldeingabe) bei Drupal
am 25.06.2011 - 21:30 Uhr in
Hi Leute,
ich bin gerade dabei ein Modul für einen Preisvergleich, ich zitiere aus dem Projektforum:
Das Modul soll einen Block bereitstellen, wo angemeldete User einen Preis eingeben können (Formular) und dieser in der DB zusammen mit user ID und node ID abgespeichert wird. Es kann pro User nur ein Preis für ein Node angegeben werden. Ausgeloggte User sehen nicht das Eingabe formular sondern nur den durchschnittlichen Preis aller eingegebenen Werte.
Nun hab ich folgedes Problem, mir ist aufgefallen, dass der User mit "," eintippen wird, und dies dann aber kontrolliert wird, ob das ne Zahl ist. Danach wird das Komma in einen Punkt umgewandelt um den dann so in die Datenbank hinzuzufügen. Das funktioniert auch solange die Zahlen solche Varianten haben:
9,99
9.99
Nun kommt aber das Problem. Wenn der User z.B. 1.000,99 eintippt erkennt er die zahl nicht....
Kann mir jemand helfen? Gibt's vielleicht eine API funktion? Beim problem mit dem is_mail hat mein guter Bekannter es auch erst nach 2 Tagen herrausgefunden.
LG
Danke im vorraus!
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo ich kenne dieses Modul
am 28.06.2011 - 11:25 Uhr
Hallo
ich kenne dieses Modul jetzt nicht
aber dem User sollte irgendwo schon mitgeteilt werden
in welchem Format der Preis eingeben werden muss..
Bei deinem Modul wird wohl sprachabhängig
die Dezimalstelle entweder als Komma (user: deutsch)
oder als Punkt (User englisch) erkannt.
Als 1000 Stelle wird hier (vermutlich) ein Leerzeichen erwartet und kein Punkt..
Das sollte neben dem Preisengabefeld angekündigt werden...
Was passiert denn bei solchen Eingaben : '10.123,456' oder 123,00.-
gibt es eine (Javascript) Fehlermeldung?
Wenn nicht dann musst du eine solche Prüfung selbst einbauen
das ist dann das Thema Theming
Gruss
phpberlin schrieb Hallo ich
am 28.06.2011 - 12:10 Uhr
Hallo
ich kenne dieses Modul jetzt nicht
aber dem User sollte irgendwo schon mitgeteilt werden
in welchem Format der Preis eingeben werden muss..
Bei deinem Modul wird wohl sprachabhängig
die Dezimalstelle entweder als Komma (user: deutsch)
oder als Punkt (User englisch) erkannt.
Als 1000 Stelle wird hier (vermutlich) ein Leerzeichen erwartet und kein Punkt..
Das sollte neben dem Preisengabefeld angekündigt werden...
Was passiert denn bei solchen Eingaben : '10.123,456' oder 123,00.-
gibt es eine (Javascript) Fehlermeldung?
Wenn nicht dann musst du eine solche Prüfung selbst einbauen
das ist dann das Thema Theming
Gruss
Bei der ersten Variante wird nicht erkannt, dass es sich um eine Zahl handelt, bei der zweiten Variante hab ich für die Kontrolle is_numric benutzt und da hab ich die eingebene Zahl mit strpos verändert, dann funktioniert es. Aber wie gesagt ich möchte das dem User so einfach wie möglich gestalten. Das heißt, dass er sich nicht an irgendwelche Formate binden soll.
LG
PS: die Fehlermeldung kommt über die form_error.
Danke für die Antwort, mir wurde es nun mit REG EX empfolen, aber dies ist sau kompliziert.