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: ANLEITUNG: Prüfung, ob Straße und Hausnummer durch Leerzeichen getrennt sind

    Trucker05

    • Schreiberling
    • Beiträge: 347
    [...] Dafür sollte der normalerweise eine entsprechende Datenbank vorhalten. Kann er das nicht leisten ist er der falsche Dienstleister.

    Schein so als ist es der falsche Dienstleister! Gleich alles hinschmeißen halte ich dennoch nicht für die richtige Lösung zumal der Umsatzanstieg und Resonanz der Kunden zum Ratenkauf deutlich zu merken ist!

    Hatte den Techniker von Klarna heute etwas länger am Telefon!
    Allerdings bin ich der Meinung daß dieser die Bezeichnung Techniker nicht wirklich verdient!

    1. Das gestern bekommene Update war mal wieder falsch! Heute hat jeder Kunde über das Modul eine error Meldung erhalten.

    2. Die hatten schon wieder tolle Ideen wie Sie Ihr Modul ändern könnten--->Abfrag mit Java Script!--> "Na toll, dann haben die die Java deaktiviert haben wieder pech"--> Antwort Klarna:" Ach ja stimmt"  :doh:

    3. Wann wird der Fehler behoben?? -->"Wir sind dran es ist aber nicht so einfach Sie bekommen dann ein Update" ?

    Die sollten sich mal ein Beispiel am modified eCommerce Shopsoftware nehmen! Hier wird erst getestet und dann werden die Daten auf den Kunden losgelassen. Zudem haben hier die Meisten 100% mehr Ahnung als die sogenannten Techniker!

    Bin ich denn die Testperson von denen?

    Da ich mich nicht mehr auf Klarna verlassen will und kann, hoffe ich ja auf eure Hilfe und möchte euch hiermit nochmals für alle Vorschläge danken!

    Würd mich freuen wenn wir ne komplette Lösung finden!

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Trucker05,

    das sollte die "fast" komplette Lösung aus meinem Beitrag sein: Anmeldung Neukunden create_account.php Problem

    Was noch fehlt: in der formcheck.js.php die Abprüfung der Hausnummer auf Länge und das es nur Zahlen, Buchstaben und evtl. auch ein / drin ist... obwohl ich denke das es von den Adressen die Matt oben genannt hat nicht sehr viele gibt mit dem /...

    Viele Grüße

    Franky

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    2. Die hatten schon wieder tolle Ideen wie Sie Ihr Modul ändern könnten--->Abfrag mit Java Script!--> "Na toll, dann haben die die Java deaktiviert haben wieder pech"--> Antwort Klarna:" Ach ja stimmt"  :doh:
    [...]

    Das stimmt natürlich nicht. Uns es spricht nichts gegen eine Javascript-gestützte Prüfung, wenn noch eine serverseitige nachgelagert ist, die sich den Usern annimmt, die Javascript deaktiviert haben. Die Leute mit deaktiviertem Java können dir egal sein.

    Papi.Sanchez

    • Frisch an Board
    • Beiträge: 90
    Hm - habe nun auch einige Kunden, die keine Hausnummer angeben.
    Hat den schon jemand die Codevorschlag von franky_n erfolgreich ohne Probleme im Live-Betrieb etabliert?
    Wäre schon ganz nett die Funktion. ;-)

    karsta.de

    • Experte
    • Beiträge: 3.057
    vielen dank an franky.
    das war genau das was ich gebraucht habe. funktioniert super.

    allerdings hat sich ein klitzekleiner schreibfehler wohl ausversehen bei copy and paste eingeschlichen.

    in die datenbank:

    Code: SQL  [Auswählen]
    INSERT INTO configuration SET configuration_key='ENTRY_STREET_ADDRESS_NO_MIN_LENGTH', configuration_value=1, configuration_group_id=2, sort_order=17;

    kleiner tipp: anpassen des hausnummernfeldes in der css z.b. so:

    Code: CSS  [Auswählen]
    input[name=street_address_no] {
      width: 30px;
    }

    [EDIT Tomcraft 13.12.2011: Anleitung im Beitrag von franky_n korrigiert.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.215
    • Geschlecht:
    Danke dir, ich habe es entsprechend korrigiert. :thx:

    Grüße

    Torsten

    lzwerch

    • Neu im Forum
    • Beiträge: 14
    • Geschlecht:
    Hallo,

    kannst Du mir die Einbauanleitung für die Leerzeichenprüfung nochmal "komplett" geben?
    Bin da nicht so der Profi, und bevor ich die falschen Zeilen zusammen Puzzle .. :whistle:

    Ich würde es nicht tun. Es gibt zu viele Stellen, wo das aufschlägt. Wenn überhaupt würde ich die Sachen getrennt abfragen und überprüfen, dann aber in einem Rutsch in die Datenbank schreiben. Da wären wir bei einer überschaubaren Anzahl Dateien.

    Oder eben auf Leerzeichen prüfen:

    Code: PHP  [Auswählen]
    if (strpos($street_address, ' ')===false) {
        $error = true;

        $messageStack->add('create_account', ENTRY_STREET_NUMBER_ERROR);
    }
    ENTRY_STREET_NUMBER_ERROR halt noch in der Sprachdatei anlegen. Wie's geht steht ja schon oben.

    [...]
    Hatte letzten Monat 70 Kunden die über Klarna kaufen wollten, die Prüfung wurde aber abgelehnt! Somit habe ich fast 60 Kunden verloren.
    [...]

    Wenn Klarna das ist, was ich denke (der schwedische Anbieter mit Rechnungszahlung), dann ist das wohl eher normal, dass die Kunden bei der Straßenangabe rumtricksen. Die wollen nämlich das System austricksen. So einfach ist das. Deine Quote ist mehr als hoch. Kein normaler Shop hat so viele falsche Adressen aus Versehen. Du hast also nicht 60 Kunden weniger, sondern 60 Betrüger nicht beliefert.

    papalife

    • Mitglied
    • Beiträge: 174
    Hallo Zusammen,

    Es ist was mehr um es einzubauen, aber jetzt braucht man nicht den ganzen Shop umrödeln und hat trotzdem Straße und Hausnummer mit Leerzeichen getrennt und eine Abprüfung...

    In der "/templates/xtc5/module/create_account.html" das in Z.68:

    Code: PHP  [Auswählen]
      <tr>
        <td width="120">{#text_street#}</td>
       <td>{$INPUT_STREET}</td>
      </tr>

    ersetzen durch:

    Code: PHP  [Auswählen]
      <tr>
        <td width="120">{#text_street#}</td>
       <td>{$INPUT_STREET} {$INPUT_STREET_NO}</td>
      </tr>

    In der "/templates/xtc5/module/create_guest_account.html" das in Z.68:

    Code: PHP  [Auswählen]
      <tr>
        <td width="120">{#text_street#}</td>
       <td>{$INPUT_STREET}</td>
      </tr>

    ersetzen durch:

    Code: PHP  [Auswählen]
      <tr>
        <td width="120">{#text_street#}</td>
       <td>{$INPUT_STREET} {$INPUT_STREET_NO}</td>
      </tr>

    Dann in der "create_account.php" nach Z.71:

    Code: PHP  [Auswählen]
            $street_address = xtc_db_prepare_input($_POST['street_address']);

    das einfügen:

    Code: PHP  [Auswählen]
            $street_address_no = xtc_db_prepare_input($_POST['street_address_no']);

    In Z.176 nach:

    Code: PHP  [Auswählen]
            if (strlen($street_address) <ENTRY_STREET_ADDRESS_MIN_LENGTH) {
                    $error = true;

                    $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR);
            }

    das einfügen:

    Code: PHP  [Auswählen]
            if (strlen($street_address_no) <ENTRY_STREET_ADDRESS_NO_MIN_LENGTH) {
                    $error = true;
                    $messageStack->add('create_account', ENTRY_STREET_ADDRESS_NO_ERROR);
            }

    In Z.278 das ändern:

    Code: PHP  [Auswählen]
                    $sql_data_array = array ('customers_id' => $_SESSION['customer_id'], 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country,'address_date_added' => 'now()','address_last_modified' => 'now()');

    in das:

    Code: PHP  [Auswählen]
                    $sql_data_array = array ('customers_id' => $_SESSION['customer_id'], 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address . ' ' . $street_address_no, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country,'address_date_added' => 'now()','address_last_modified' => 'now()');

    In Z.479 nach dem:

    Code: PHP  [Auswählen]
    $smarty->assign('INPUT_STREET', xtc_draw_input_fieldNote(array ('name' => 'street_address', 'text' => ' '. (xtc_not_null(ENTRY_STREET_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_STREET_ADDRESS_TEXT.'</span>' : ''))));

    das:

    Code: PHP  [Auswählen]
    $smarty->assign('INPUT_STREET_NO', xtc_draw_input_fieldNote(array ('name' => 'street_address_no', 'text' => ' '. (xtc_not_null(ENTRY_STREET_ADDRESS_NO_TEXT) ? '<span class="inputRequirement">'.ENTRY_STREET_ADDRESS_NO_TEXT.'</span>' : ''))));

    In der "/lang/german/german.php" nach Z.119:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_ERROR', 'Strasse/Nr. muss aus mindestens ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' Zeichen bestehen.');
    define('ENTRY_STREET_ADDRESS_TEXT', '*');

    das einfügen:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_ERROR', 'Hausnummer muss aus mindestens ' . ENTRY_STREET_ADDRESS_NO_MIN_LENGTH . ' Zeichen bestehen.');
    define('ENTRY_STREET_ADDRESS_NO_TEXT', '*');

    In der "/includes/formcheck.js.php" in Z.144 nach:

    Code: PHP  [Auswählen]
      check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo xtc_js_lang(ENTRY_STREET_ADDRESS_ERROR); ?>");

    das einfügen:

    Code: PHP  [Auswählen]
      check_input("street_address_no", <?php echo ENTRY_STREET_ADDRESS_NO_MIN_LENGTH; ?>, "<?php echo xtc_js_lang(ENTRY_STREET_ADDRESS_NO_ERROR); ?>");

    Dann in der Datenbank noch das:

    Code: SQL  [Auswählen]
    INSERT INTO configuration SET configuration_key='ENTRY_STREET_ADDRESS_NO_MIN_LENGTH', configuration_value=5, configuration_group_id=2, sort_order=17;

    [...]
    kleiner tipp: anpassen des hausnummernfeldes in der css z.b. so:

    Code: CSS  [Auswählen]
    input[name=street_address_no]{
                width:30px;
        }
    [...]

    WICHTIG: Erst an einem Testshop testen da hier Fehler drin sein könnten. Ist ungetestet!

    Die "/include/formcheck.js.php" könnte im Nachhinein noch erweitert werden so, das die Hausnummer nur Buchstaben und Zahlen enthalten darf aber keine Schrägstriche etc.

    Viele Grüße

    Franky

    [EDIT Tomcraft 13.12.2011: Fehler in Anleitung korrigiert, danke an kgd für den Hinweis.]

    Das sieht gut aus aber

    1) define('ENTRY_STREET_ADDRESS_NO_ERROR', 'Hausnummer muss aus mindestens ' . ENTRY_STREET_ADDRESS_NO_MIN_LENGTH . ' Zeichen bestehen.');
    define('ENTRY_STREET_ADDRESS_NO_TEXT', '*');

    2) root/lang/german/admin/configuration.php

    define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_TITLE' , 'Hausnummer');
    define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_DESC' , 'Minimum Anzahl die Hausnummer Artikel, die bei der Artikelansicht angezeigt werden sollen');

    3) Du sollst auf create_account_guest.php gleiche machen

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Kurzer Einwurf:
    Die Idee mit Slash nicht zulassen ist kontraproduktiv. Siehe
    http://www.gutefrage.net/frage/kennt-jemand-halbe-hausnummern-wie-z-b-17-12
    Die Hausnummer 1/3 kann gültig sein!

    Des weiteren muss man bei allen Prüfungen von Adressen die Mannheimer Innenstadt beachten!

    Gültige Straße / Hausnummer Kombination in Mannheim ist z.B.:
    L13 10
    Wird oft als L13,10 Geschrieben. Siehe:
    http://www.dasoertliche.de/Themen/Bauer/Mannheim-Quadrate.html

    Also wenn nur ein Feld da ist für Straße und Hausnummer, ist die Gesamtlänge möglicherweise nur 4 Zeichen!
    M4 2

    Diese Adresse wird in den Standardeinstellungen von Modified nicht zugelassen!!! Ich hatte mal ein Ticket aufgemacht, was Torsten aber ohne Aktion (außer giftigem Kommentar) wieder geschlossen hatte.
    Der Standardwert ist ganz klar ein Bug, da 95% der Shopbetreiber solche Adressen nicht kennen, den Wert nicht anpassen und deshalb die Mannheimer Innenstadt nicht beliefern können. Der Quatsch kommt noch von XTC.

    Und denkt auch Dran .... es gibt Leute die Schreiben so etwas:
    Bergstr. 14a Ap 201
    oder
    Hauptstr. 24 WG 501
    Das Apartment 201, oder Wohnung 501 gehört eigentlich in den Adresszusatz .... aber immer vom DAU ausgehen.

    papalife

    • Mitglied
    • Beiträge: 174
    Kurzer Einwurf:
    Die Idee mit Slash nicht zulassen ist kontraproduktiv. Siehe
    http://www.gutefrage.net/frage/kennt-jemand-halbe-hausnummern-wie-z-b-17-12
    Die Hausnummer 1/3 kann gültig sein!

    Des weiteren muss man bei allen Prüfungen von Adressen die Mannheimer Innenstadt beachten!

    Gültige Straße / Hausnummer Kombination in Mannheim ist z.B.:
    L13 10
    Wird oft als L13,10 Geschrieben. Siehe:
    http://www.dasoertliche.de/Themen/Bauer/Mannheim-Quadrate.html

    Also wenn nur ein Feld da ist für Straße und Hausnummer, ist die Gesamtlänge möglicherweise nur 4 Zeichen!
    M4 2

    Diese Adresse wird in den Standardeinstellungen von Modified nicht zugelassen!!! Ich hatte mal ein Ticket aufgemacht, was Torsten aber ohne Aktion (außer giftigem Kommentar) wieder geschlossen hatte.
    Der Standardwert ist ganz klar ein Bug, da 95% der Shopbetreiber solche Adressen nicht kennen, den Wert nicht anpassen und deshalb die Mannheimer Innenstadt nicht beliefern können. Der Quatsch kommt noch von XTC.

    Und denkt auch Dran .... es gibt Leute die Schreiben so etwas:
    Bergstr. 14a Ap 201
    oder
    Hauptstr. 24 WG 501
    Das Apartment 201, oder Wohnung 501 gehört eigentlich in den Adresszusatz .... aber immer vom DAU ausgehen.

    Bonsai du hast recht aber wo ist das problem. Minimum länge für strasse und hausnummer 1 Zeichen.

    Strasse: L13 -- Hausnummer: 10
    Strasse: M4 -- Hausnummer: 2
    Strasse: Bergstr. -- Hausnummer: 14a Ap 201

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Das Problem ist, Minimum Länge Straße ist in 1.06, wenn ich mich richtig erinnere 3 Zeichen. Aus jeden Fall war es als ich den Shop installierte Größer 2 Zeichen und damit in Deutschland unbrauchbar.

    papalife

    • Mitglied
    • Beiträge: 174
    Du kannst die Zeichen wechseln. z.b. Ich nutze modified 1.06 4642 und habe 1 Zeichen für die Strasse und du kannst Mannheim unterstützen. 3 Zeichen sind nicht fest.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Es geht ja auch um die STANDARDEINSTELLUNG. Ich bin sicher in 95% der Installationen wir der Wert eben NICHT geändert. Es geht hier nicht um mich, sondern um die Allgemeinheit. 95% der Deutschen kennen eine Adresse mit nur 2 Zeichen im Straßennamen nicht und werden deshalb darauf vertrauen, dass die Standardeinstellung Sinn macht.

    Wäre schön wenn in Version 2 mal ein Sinnvoller Wert vorgegeben würde ...

    Barcelo

    • Mitglied
    • Beiträge: 103
    • Geschlecht:
    Moin zusammen,

    aus aktuellem Anlass bin ich genau auf diesen Thread gestoßen - vielen Dank an alle Beteiligten für dieses Tutorial  :thumbs:

    So weit,  so gut - was ich jedoch komplett vermisse ist dass die Datenbank-Tabelle "address_book" nicht um ein neues (entsprechendes) Feld "street_address_no" erweitert wird.
    Betrifft dies dann zudem auch nicht die Tabelle "address_format"?

    Hab ich hier was verpasst, check ich's nicht  :doh: oder sehe ich das richtig  :idea:?

    Gruß,
    Barcelo

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Es ist wenig brauchbar, die Hausnummer separat in ein Feld zu schreiben.
    Du müsstest extrem umbauen, da die Adresse z.B. auch in den orders Tabellen weiter genutzt wird.

    Außerdem kommen einige Wawis nicht klar mit nicht-numerischen Zeichen im Feld Hausnummer.

    Lexware macht z.B. aus der Hausnummer 1-3 beim Speichern das: 1. ODer aus 103b wird 103.  :-!

    Also warum genau brauchst Du die Hausnummer einzeln? Mit der Info kommt jemandem eventuell eine Idee.
    2 Antworten
    1176 Aufrufe
    21. Januar 2021, 21:16:08 von Tomcraft
    13 Antworten
    7960 Aufrufe
    16. Dezember 2015, 17:00:21 von jaspa
    4 Antworten
    4502 Aufrufe
    29. April 2016, 11:04:40 von bigi100
    7 Antworten
    3178 Aufrufe
    12. Februar 2010, 13:13:41 von Tomcraft