Werbung / Banner buchen
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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    Vielen Dank erst mal!
    [...]
    So wie man mir das erklärt hat, braucht das Modul von Klarna die richtige Form der Strasse um die Bonitätsabfrage durchzuführen. Das aktuelle Modul füge ich mal unten bei!

    Vielleicht frag ich noch den Techniker von Klarna ob Ihr Modul dann damit zurecht kommt!?
    Sofern dieser mir das beantworten kann. Leider sind die nicht ganz so fit wie das Forum hier!
    [...]

    Verstehe ich das Thema hier richtig, dass wir modified eCommerce Shopsoftware gerade anpassen, damit das Klarna Modul funktioniert?!

    Nö Leute, das geht umgekehrt! Klarna soll das Modul überarbeiten.

    Grüße

    Torsten

    Trucker05

    • Schreiberling
    • Beiträge: 347
    Ok, hab die 45 Dateien aus dem original!

    Frag noch mal zur Sicherheit:

    - Jetzt immer alles (im Frontend) mit "street_address" suchen,
    - die ganze Zeile kopieren,
    - darunter einfügen und auf "street_address_no" ändern?
    richtig??

    Nebenbei dazu alles notieren? Like this:

    In der Datei Shop\admin\.... Zeile... das Suchen:

    .........."street_address".............

    danach einfügen

    .........."street_adress_no..............

    Richtisch????

    Wenn ja, dann mach ich das schnellst möglich!
    Muß nur die Inverntur und die laufenden Aufträge noch fertigmachen!

    Trucker05

    • Schreiberling
    • Beiträge: 347
    @Tomcraft

    Siehst du, glaube ich, richtig!

    Mir wäre es andersherum auch lieber! Aber mal im ernst, ich hab noch mehr Ahnung wie die und das will was heißen!! :lol1:

    Zudem soll es bei Intraship und Hermes zum gleichen Problem kommen und eine saubere Adresse auf der Rechnung fände ich auch Prima!

    Reicht ja schon wenn immer FRAU HANS DIETER drauf steht oder HERR CLAUDIA SOMMER :nixweiss:

    Um genau zu sein, wäre es eh prima mal etwas mehr Schwung in die create_account.php zu bringen um die Anmeldung für den Kunden einfacher zu gestalten! Viele können eben nicht richtig lesen und schreiben!

    Find das Formular beim DHL Onlinefrankieren nicht schlecht! Oder noch besser:

    Formularfeldeingabeüberprüfung mit JavaScript

    Matt

    • Experte
    • Beiträge: 4.241
    Tu's nicht. Und wenn du es tust, sag nachher nicht, man hätte dich nicht gewarnt.

    Trucker05

    • Schreiberling
    • Beiträge: 347
    Hast ne bessere Idee?

    Matt

    • Experte
    • Beiträge: 4.241
    Ja, hab ich und hab ich auch schon geschrieben.

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Trucker05,

    ja wie Du oben beschreibst ist die Vorgehensweise richtig.
    Ob Du es machen willst oder nicht ist Dir selber überlassen.
    Ich denke es in einem Produktivshop zu machen ist zu risikoreich da die Änderungen sehr weitreichend sind... wenn dann erst mal in einem Testshop.
    Aber gut, Du entscheidest es selber für Dich.

    Man kann auch (hat h-h-h mal per PM vorgeschlagen) mit einer RegExp Anweisung arbeiten.
    Dann hat man die Felder nicht getrennt, aber könnte evtl. Strasse von Hausnummer für die Übergabe nach Klarna versuchen zu trennen...
    Dafür müsste dann aber auch mal ein Vorschlag kommen wie es zu lösen ist, denn die Zeichen können ja nunmal unterschiedlich sein die zwischen Strasse und Hausnummer stehen...

    Immer gerne andere Vorschläge.... denn es ist ja auch für mich viel Arbeit! ;)

    Viele Grüße

    Franky

    Trucker05

    • Schreiberling
    • Beiträge: 347
    Ja, hab ich und hab ich auch schon geschrieben.

    Vielleicht kannst Du es auch genauer erklären!

    @Franky
    Am LiveShop versuch ich es nicht.....habt mich überredet!

    Es muß definitiv ein Leerzeichen zwischen Strasse und Nummer!

    Denke die Vorschläge von h-h-h und Matt gehen in die gleiche Richtung! Vielleicht sollten wir uns eher daran halten!

    p.S. Danke für eure Teilnahme!!!

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Trucker05,

    also ich habe jetzt noch mal im Stillen drüber nachgedacht.
    Es macht eigentlich nur so einen Sinn das man das Formular zwar anpasst, bedeutet dort 2 Felder macht, aber alles nacher in ein Datenbankfeld schreibt.

    Warum?
    Weil ich gerade international denke. Nicht in jedem Land ist es so das die Hausnummer vorne steht und wenn ich dann nur unterschiedliche Formulare für die einzelnen Länder mache, aber nachher alles in ein DB Feld schreibe ist es sinnvoller...

    Es würde sogar Sinn machen PLZ und Ort in ein DB Feld zu schreiben!

    Viele Grüße

    Franky

    Matt

    • Experte
    • Beiträge: 4.241
    Vielleicht kannst Du es auch genauer erklären!
    [...]

    Mit strpos auf Leerzeichen prüfen. Entsprechenden Codeschnipsel hatte ich auch gepostet.

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Matt,

    wenn es so einfach wäre!
    Was machst Du denn wenn es so da steht?
    "Straße /56437/"

    Die Nummer ist nicht wirklich gültig und korrekt...

    Viele Grüße

    Franky

    franky_n

    • Experte
    • Beiträge: 4.950
    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_NO_ERROR', 'Hausnummer muss aus mindestens ' . ENTRY_STREET_ADDRESS_NO_MIN_LENGTH . ' Zeichen bestehen.');
    define('ENTRY_STREET_ADDRESS_NO_TEXT', '*');

    In der "/lang/german/admin/configuration.php" nach Z.100:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_MIN_LENGTH_TITLE' , 'Strasse');
    define('ENTRY_STREET_ADDRESS_MIN_LENGTH_DESC' , 'Minimum L&auml;nge der Strassenanschrift');

    das einfügen:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_TITLE' , 'Hausnummer');
    define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_DESC' , 'Minimum L&auml;nge der Hausnummer');

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

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_ERROR', 'Street/No. must consist of at least ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' characters.');
    define('ENTRY_STREET_ADDRESS_TEXT', '*');

    das einfügen:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_NO_ERROR', 'Street-No. must consist of at least ' . ENTRY_STREET_ADDRESS_NO_MIN_LENGTH . ' characters.');
    define('ENTRY_STREET_ADDRESS_NO_TEXT', '*');

    In der "/lang/english/admin/configuration.php" nach Z.101:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_MIN_LENGTH_TITLE' , 'Street Address');
    define('ENTRY_STREET_ADDRESS_MIN_LENGTH_DESC' , 'Minimum length of street address');

    das einfügen:

    Code: PHP  [Auswählen]
    define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_TITLE' , 'Street  No.');
    define('ENTRY_STREET_ADDRESS_NO_MIN_LENGTH_DESC' , 'Minimum length of street number');

    In der "/includes/form_check.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=1, configuration_group_id=2, sort_order=6;

    [...]
    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/form_check.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.]
    [EDIT Tomcraft 10.12.2014: Fehler in Anleitung korrigiert und englische Übersetzung ergänzt.]

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    Was machst Du denn wenn es so da steht?
    "Straße /56437/"
    [...]

    Hm, war nicht sein initiales Problem. Sein initiales Problem war es, dass 'Hauptsraße10' nicht gültig ist und 'Hauptstraße/10' auch nicht. Und das fängst du mal eben mit strpos ab. Und dein Beispiel prüft auch nicht, ob da noch irgendwelche Sonderzeichen drin sind, die da nichts verloren haben.

    Aber eigentlich erwarte ich von einem Anbieter, der mir Rechnungsversand ermöglicht, dass er die schwarzen Schafe ausfiltert und nicht ich, egal wie trickreich die vorgehen. Erwischt er einen nicht, sein Problem und sein Geschäftsrisiko.

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo Matt,

    zum Thema Prüfung:
    Darum habe ich das drunter geschrieben:

    [...]
    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.
    [...]

    Und er macht sicher ein Leerzeichen zwischen Strasse und Hausnummer.

    Zu Anbieter: Tjo es hilft nur niemandem wenn der Anbieter es halt nicht macht... :)

    Viele Grüße

    Franky

    Matt

    • Experte
    • Beiträge: 4.241
    [...]
    Darum habe ich das drunter geschrieben:
    [...]

    Upps, hatte ich übersehen, eine nach gelagerte PHP-Überprüfung halte ich aber für Pflicht.

    [...]
    Und er macht sicher ein Leerzeichen zwischen Strasse und Hausnummer.
    [...]

    Ich hatte Trucker so verstanden, dass genau das fehlende Leerzeichen sein Problem ist.

    [...]
    Zu Anbieter: Tjo es hilft nur niemandem wenn der Anbieter es halt nicht macht... :)
    [...]

    OK, das wird jetzt ein bisschen kleinkariert:
    Das ist eine gültige deutsche Adresse: http://goo.gl/maps/YvDl
    Die würde bei einer Prüfung auf / durch's Raster fallen. Mein Verständnis eines Dienstleisters ist es, dass er mir sagen kann, ob es die Adresse gibt oder nicht. Dafür sollte der normalerweise eine entsprechende Datenbank vorhalten. Kann er das nicht leisten ist er der falsche Dienstleister.

    2 Antworten
    1173 Aufrufe
    21. Januar 2021, 21:16:08 von Tomcraft
    13 Antworten
    7942 Aufrufe
    16. Dezember 2015, 17:00:21 von jaspa
    4 Antworten
    4492 Aufrufe
    29. April 2016, 11:04:40 von bigi100
    7 Antworten
    3173 Aufrufe
    12. Februar 2010, 13:13:41 von Tomcraft