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: Adressfeld (Strasse) auf Hausnummer überprüfen

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Ich fasse die Anleitung von noRiddle (Teil 1 & Teil 2) aus dem Thema "Adressfeld wird unvollständig ausgefüllt" hier nochmal zusammen:

    Datei "/includes/modules/checkout_address_store.php":

    Suche:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
        //BOC add new parameter to be able to check house number, noRiddle
        //if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
        if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH || !preg_match('#[0-9]#', $street_address)) {
        //EOC add new parameter to be able to check house number, noRiddle

    Suche weiter unten:

    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);

    Ersetze mit:

    Code: PHP  [Auswählen]
          //BOC add new parameter to be able to check house number, noRiddle
          /*
          $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);
          */

          $street_address_withoutsinglenull = (substr_count($street_address, '0') > 0 && !preg_match('#[1-9]#', $street_address)) ? str_replace('0', '', $street_address) : $street_address;
          $sql_data_array = array ('customers_id' => $_SESSION['customer_id'],
                                   'entry_firstname' => $firstname,
                                   'entry_lastname' => $lastname,
                                   'entry_street_address' => $street_address_withoutsinglenull,
                                   'entry_postcode' => $postcode,
                                   'entry_city' => $city,
                                   'entry_country_id' => $country);
          //EOC add new parameter to be able to check house number, noRiddle

    Datei "/includes/form_check.js.php":

    Suche:

    Code: PHP  [Auswählen]
    function check_input(field_name, field_size, message) {
      if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
        var field_value = form.elements[field_name].value;

        if (field_value == '' || field_value.length < field_size) {
          error_message = error_message + "* " + message + "\n";
          error = true;
        }
      }
    }

    Ersetze mit:

    Code: PHP  [Auswählen]
    //BOC add new parameter to be able to check house number, noRiddle
    //function check_input(field_name, field_size, message) {
    function check_input(field_name, field_size, message, no=false) {
      if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
        //var field_value = form.elements[field_name].value;
        var field_value = form.elements[field_name].value,
            countall = (field_value.match(/[0-9]/g) || []).length;

        //if (field_value == '' || field_value.length < field_size) {
        if (field_value == '' || field_value.length < field_size || (no===true && countall < 1)) {
          error_message = error_message + "* " + message + "\n";
          error = true;
        }
      }
    }
    //EOC add new parameter to be able to check house number, noRiddle

    Suche weiter unten:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
      //BOC use new parameter to check for house number, noRiddle
      //check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo xtc_js_lang(ENTRY_STREET_ADDRESS_ERROR); ?>");
      check_input("street_address", <?php echo ENTRY_STREET_ADDRESS_MIN_LENGTH; ?>, "<?php echo xtc_js_lang(ENTRY_STREET_ADDRESS_ERROR); ?>", true);
      //EOC use new parameter to check for house number, noRiddle

    Datei "/lang/english/english.php":

    Suche:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
    //BOC add new parameter to be able to check house number, noRiddle
    //define('ENTRY_STREET_ADDRESS_ERROR', 'Street/No. must consist of at least ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' characters.');
    define('ENTRY_STREET_ADDRESS_ERROR', 'Street/No. must consist of at least ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' characters and must have a house number. If you don\'t have a house number please enter a 0.');
    //EOC add new parameter to be able to check house number, noRiddle

    Datei "/lang/german/german.php":

    Suche:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
    //BOC add new parameter to be able to check house number, noRiddle
    //define('ENTRY_STREET_ADDRESS_ERROR', 'Strasse/Nr. muss aus mindestens ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' Zeichen bestehen.');
    define('ENTRY_STREET_ADDRESS_ERROR', 'Strasse/Nr. muss aus mindestens ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' Zeichen bestehen und eine Hausnummer haben. Wenn Sie keine Hausnummer haben geben Sie bitte eine 0 ein.');
    //EOC add new parameter to be able to check house number, noRiddle

    Datei "address_book_process.php":

    Suche:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
            //BOC add new parameter to be able to check house number, noRiddle
            //if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
            if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH || !preg_match('#[0-9]#', $street_address)) {
            //EOC add new parameter to be able to check house number, noRiddle

    Suche weiter unten:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
                    //BOC add new parameter to be able to check house number, noRiddle
                    //$sql_data_array = array ('entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => (int) $country,'address_last_modified' => 'now()');
                    $street_address_withoutsinglenull = (substr_count($street_address, '0') > 0 && !preg_match('#[1-9]#', $street_address)) ? str_replace('0', '', $street_address) : $street_address;
                    $sql_data_array = array ('entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address_withoutsinglenull, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => (int) $country,'address_last_modified' => 'now()');
                    //EOC add new parameter to be able to check house number, noRiddle

    Datei "create_account.php":

    Suche:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
      //BOC add new parameter to be able to check house number, noRiddle
      //if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
      if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH || !preg_match('#[0-9]#', $street_address)) {
      //EOC add new parameter to be able to check house number, noRiddle

    Suche weiter unten:

    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()'
        );

    Ersetze mit:

    Code: PHP  [Auswählen]
        //BOC add new parameter to be able to check house number, noRiddle
        /*
        $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()'
        );
        */

        $street_address_withoutsinglenull = (substr_count($street_address, '0') > 0 && !preg_match('#[1-9]#', $street_address)) ? str_replace('0', '', $street_address) : $street_address;
        $sql_data_array = array (
          'customers_id' => $_SESSION['customer_id'],
          'entry_firstname' => $firstname,
          'entry_lastname' => $lastname,
          'entry_street_address' => $street_address_withoutsinglenull,
          'entry_postcode' => $postcode,
          'entry_city' => $city,
          'entry_country_id' => $country,
          'address_date_added' => 'now()',
          'address_last_modified' => 'now()'
        );
        //EOC add new parameter to be able to check house number, noRiddle

    Datei "create_guest_account.php":

    Suche:

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

    Ersetze mit:

    Code: PHP  [Auswählen]
      //BOC add new parameter to be able to check house number, noRiddle
      //if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) {
      if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH || !preg_match('#[0-9]#', $street_address)) {
      //EOC add new parameter to be able to check house number, noRiddle

    Suche weiter unten:

    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()'
        );

    Ersetze mit:

    Code: PHP  [Auswählen]
        //BOC add new parameter to be able to check house number, noRiddle
        /*
        $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()'
        );
        */

        $street_address_withoutsinglenull = (substr_count($street_address, '0') > 0 && !preg_match('#[1-9]#', $street_address)) ? str_replace('0', '', $street_address) : $street_address;
        $sql_data_array = array (
          'customers_id' => $_SESSION['customer_id'],
          'entry_firstname' => $firstname,
          'entry_lastname' => $lastname,
          'entry_street_address' => $street_address_withoutsinglenull,
          'entry_postcode' => $postcode,
          'entry_city' => $city,
          'entry_country_id' => $country,
          'address_date_added' => 'now()',
          'address_last_modified' => 'now()'
        );
        //EOC add new parameter to be able to check house number, noRiddle

    Fertig!

    Grüße

    Torsten

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34664.0

    bigi100

    • Mitglied
    • Beiträge: 168
    Re: ANLEITUNG: Adressfeld (Strasse) auf Hausnummer überprüfen
    Antwort #1 am: 04. April 2016, 17:08:52
    Hallo Torsten

    kann ich das so auch für die version 2.0 übernehmen ?

    Gruss

    Bigi

    bigi100

    • Mitglied
    • Beiträge: 168
    Re: ANLEITUNG: Adressfeld (Strasse) auf Hausnummer überprüfen
    Antwort #2 am: 28. April 2016, 17:27:39
    tja, ich habe das genau so eingebaut und anstelle der seite create account oder guest accaont erhielt ich im shop dann eine leere weisse Seite.
    Musste dann eben wieder umbauen

    woran könnte das denn liegen ?

    Lg Bigi

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: ANLEITUNG: Adressfeld (Strasse) auf Hausnummer überprüfen
    Antwort #3 am: 29. April 2016, 10:55:07
    Ohne den Einbau in einen 2.0 gemacht zu haben, kann ich Dir aber weiterhelfen. Die "Weiße Seite" ist aller Wahrscheinlichkeit nach deshalb weiß, weil Du die Fehlermeldungen nicht eingeschaltet hattest. Das geht in einem 2.0 im Backend unter /Erw. Konfigurationen/Logging Optionen/Error Reporting.

    Zudem gibt es hier im Forum zig Seiten über das Thema weiße Seite und Error Reporting. Einfach mal suchen.

    Beste Grüße,
    Wayne

    bigi100

    • Mitglied
    • Beiträge: 168
    Re: ANLEITUNG: Adressfeld (Strasse) auf Hausnummer überprüfen
    Antwort #4 am: 29. April 2016, 11:04:40
    hab vielen Dank

    ja, ich muss hier noch viel lesen :-)
    13 Antworten
    8191 Aufrufe
    16. Dezember 2015, 17:00:21 von jaspa
    9 Antworten
    4599 Aufrufe
    19. November 2012, 19:25:46 von xxhappyxx
    56 Antworten
    22526 Aufrufe
    04. April 2016, 17:09:43 von WayneTsun
               
    anything