Ankündigung

Einklappen
Keine Ankündigung bisher.

diverse Error Logs bei World4You mit PHP 7.3 und MySQL 5.7 strict mode

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    (Zen-Cart 1.5.6) diverse Error Logs bei World4You mit PHP 7.3 und MySQL 5.7 strict mode

    Hallo webchills,

    ich erhalte ständig folgende Fehlermeldungen in den Logfiles und kann damit nicht wirklich was anfangen:
    ZenCart 1.5.6d
    PHP Version 7.3.14
    Provider: World4You

    1. Fehlermeldung
    Code:
    [03-Mar-2020 14:09:10 Europe/Vienna] Request URI: /xxx/index.php?main_page=shopping_cart&product_id=5%3Adfe4495877fe016034be8cff46a1c466, IP address: xxx
    #1  zen_add_tax() called at [/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_modules_shipping_estimator.php:128]
    #2  require(/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_modules_shipping_estimator.php) called at [/home/xx/xx/xx/xx/xx/includes/modules/shipping_estimator.php:261]
    #3  require(/home/xx/xx/xx/xx/xx/includes/modules/shipping_estimator.php) called at [/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_shopping_cart_default.php:176]
    #4  require(/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_shopping_cart_default.php) called at [/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/common/tpl_main_page.php:261]
    #5  require(/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/common/tpl_main_page.php) called at [/home/xx/xx/xx/xx/xx/includes/index.php:97]
    --> PHP Warning: A non-numeric value encountered in /home/xx/xx/xx/xx/xx/includes/functions/functions_taxes.php on line 215.

    2. Problem
    Zahlung mit Paypal Express:

    Nach dem Durchlauf der Zahlung erhalte ich einen Datenbankfehler, die Überweisung wurde aber durchgeführt:
    Code:
    [03-Mar-2020 14:11:24 Europe/Vienna] Request URI: /xx/index.php?main_page=checkout_process, IP address: XXX
    #1  trigger_error() called at [/home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php:171]
    #2  queryFactory->show_error() called at [/home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php:143]
    #3  queryFactory->set_error() called at [/home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php:270]
    #4  queryFactory->Execute() called at [/home/xx/xx/xx/xx/xx/includes/functions/functions_general.php:952]
    #5  zen_db_perform() called at [/home/xx/xx/xx/xx/xx/includes/classes/order.php:718]
    #6  order->create() called at [/home/xx/xx/xx/xx/xx/includes/modules/checkout_process.php:95]
    #7  require(/home/xx/xx/xx/xx/xx/includes/modules/checkout_process.php) called at [/home/xx/xx/xx/xx/xx/includes/modules/pages/checkout_process/header_php.php:14]
    #8  require(/home/xx/xx/xx/xx/xx/includes/modules/pages/checkout_process/header_php.php) called at [/home/xx/xx/xx/xx/xx/index.php:36]
    --> PHP Fatal error: 1366:Incorrect integer value: '' for column 'delivery_address_format_id' at row 1 :: INSERT INTO zc_orders (customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_telephone, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, payment_module_code, shipping_method, shipping_module_code, coupon_code, cc_type, cc_owner, cc_number, cc_expires, date_purchased, orders_status, order_total, order_tax, currency, currency_value, order_device) VALUES ('1', 'XX XX', '', 'XX', '', 'XX', 'XX', '', 'XX', 'XX', 'XX', 'XX', ' ', '', '', '', '', '', '', '', '', 'XX XX', '', 'XX', '', 'XX', 'XX', '', 'XX', 'X', 'PayPal', 'paypalwpp', 'Versandkostenfrei', 'free', '', '', '', '', '', now(), '2', '10', '1.66666', 'EUR', '1.000000', 'Desktop') ==> (as called by) /home/xx/xx/xx/xx/xx/includes/functions/functions_general.php on line 952 <== in /home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php on line 171.
    Vielen Dank für die Hilfe im Voraus

    #2
    @ 2
    Incorrect integer value for column 'delivery_address_format_id'


    @ 1
    Welche Erweiterungen sind in diesem Shop installiert?

    Kommentar


      #3
      Hallo und danke für die schnelle Hilfe.

      Also zusätzlich sind "nur" die Urlaubsmeldung 1.1 und der News Box Manager 2.2.1 installiert.
      Das ganze eben auf dem Winchester Responsive Template ...


      Zu zweiten Meldung: Stimmt, es wurde ein Geschenkgutschein bestellt ...

      LG

      Kommentar


        #4
        Ich hoffe ich überstrapaziere dich nicht, aber eine dritte und letzte Meldung hätte ich da noch. Keine Ahnung wie es dazu nun wieder kommt:
        Code:
        [03-Mar-2020 17:03:44 Europe/Vienna] Request URI: /_testshop/index.php?main_page=checkout_process, IP address: 91.133.93.135
        #1 trigger_error() called at [/home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php:171]
        #2 queryFactory->show_error() called at [/home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php:143]
        #3 queryFactory->set_error() called at [/home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php:270]
        #4 queryFactory->Execute() called at [/home/xx/xx/xx/xx/xx/includes/functions/functions_general.php:952]
        #5 zen_db_perform() called at [/home/xx/xx/xx/xx/xx/includes/modules/payment/paypalwpp.php:526]
        #6 paypalwpp->after_process() called at [/home/xx/xx/xx/xx/xx/includes/classes/payment.php:254]
        #7 payment->after_process() called at [/home/xx/xx/xx/xx/xx/includes/modules/pages/checkout_process/header_php.php:17]
        #8 require(/home/xx/xx/xx/xx/xx/includes/modules/pages/checkout_process/header_php.php) called at [/home/xx/xx/xx/xx/xx/index.php:36]
        --> PHP Fatal error: 1366:Incorrect decimal value: '10.00 EUR' for column 'settle_amount' at row 1 :: INSERT INTO zc_paypal (order_id, txn_type, module_name, module_mode, reason_code, payment_type, payment_status, pending_reason, invoice, first_name, last_name, payer_business_name, address_name, address_street, address_city, address_state, address_zip, address_country, address_status, payer_email, payer_id, payer_status, payment_date, business, receiver_email, receiver_id, txn_id, parent_txn_id, num_cart_items, mc_gross, mc_fee, mc_currency, settle_amount, settle_currency, exchange_rate, notify_version, verify_sign, date_added, memo) VALUES ('1913', 'cart', 'paypalwpp', 'PayPal', 'None', 'PayPal Express Checkout (instant)', 'Completed', 'None', 'EC-XXX', 'XXX', 'XXX', '', '', '', '', '', '', '', '', 'XXX', 'XXX', 'unverified', '2020-03-03 09:03:42', '', 'XX', '', 'XX', '', '1', '10', '0.69', 'EUR', '10.00 EUR', 'EUR', '1', '0', '', now(), '{Record generated by payment module}') ==> (as called by) /home/xx/xx/xx/xx/xx/includes/functions/functions_general.php on line 952 <== in /home/xx/xx/xx/xx/xx/includes/classes/db/mysql/query_factory.php on line 171.
        Soweit ich da durchsteige geht es um die EUR-Bezeichnung in der 'settle_amount'-Spalte, die da wohl nicht drin stehen dürfte.
        Also statt 10.00 EUR nur der reine Betrag von 10.00.
        Aber wie es dazu kommt erschließt sich mir auch nicht ...

        Danke nochmals für deine Zeit im Voraus ...

        Kommentar


          #5
          World4You ist ein Provider mit sehr restriktiven Einstellungen. Hier scheint MySQL 5.7 im strict mode zu laufen.
          Du solltest mal den Support kontaktieren und anfragen, ob der MySQL strict mode deaktiviert werden kann.

          Um Incorrect decimal value for column 'settle_amount' zu vermeiden

          includes/modules/payment/paypalwpp.php

          ca. Zeile 518

          ändern von

          Code:
          'settle_amount' => (float)(isset($this->responsedata['PAYMENTINFO_0_SETTLEAMT'])) ? $this->urldecode($this->responsedata['PAYMENTINFO_0_SETTLEAMT']) : $this->amt,
          auf

          Code:
          'settle_amount' => (float)$this->amt,

          Kommentar


            #6
            Hallo webchills, danke für die Mühe.
            In den Servereinstellungen ist folgendes zu lesen:
            Code:
            [B]MySQL Modus:[/B] STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION
            Wäre das diese von dir vermutete Einstellung?
            Und was bedeutet das jetzt konkret in Bezug auf so manche Fehlermeldungen?

            LG

            Kommentar


              #7
              Ja hier ist der strict mode aktiv
              Es werden keine fehlenden oder für das definierte Feld ungültige Werte akzeptiert und das Einfügen/Aktualisieren wird abgebrochen.
              Das ist aus Datenbanksicht auch völlig ok so, es gibt aber im umfangreichen Zen Cart Code von 1.5.6d noch Stellen, die darauf nicht ausgelegt sind.
              Im Grundcode sollte bereits fast alles ok sein, was noch fehlt wird in der nächsten Version 1.5.6e optimiert.
              Es sind aber vor allem im Modulbereich zahlreiche Module im Umlauf, die noch nicht angepassten unsauberen Code enthalten.
              Die einfachste Lösung ist daher den strict mode zu deaktivieren. Bei den meisten Providern ist der auch erst gar nicht aktiv.
              Daher der Vorschlag, den Provider zu kontaktieren.

              Kommentar


                #8
                Super Support und eine hilfreiche Antwort - danke Webchills.

                Habe den Provider angeschrieben, mal sehen was zurück kommt.
                Jedenfalls nochmals besten Dank für die superschnelle Hilfe.

                LG
                Janis

                Kommentar


                  #9
                  Hallo Webchills,

                  nun ich habe beim Support von World4You nachgefragt betreffend des "strict modes".
                  Sie gaben an, dass sie dies nicht generell zurückstellen können.
                  Sie boten mir an, eine 5.5er MySQL Datenbank anzulegen, die ich anstatt der 5.7er probieren könne. Ausserdem habe ich noch eine alte 5.1 für das utf8 anstatt dem neueren utf8mb4. Keine Ahnung ob es Sinn macht ...

                  Ausserdem überhäufen mich nach wie vor die Tax-Logs-Einträge ...
                  Code:
                  [08-Mar-2020 17:52:23 Europe/Vienna] Request URI: /shop/index.php?main_page=checkout_shipping, IP address: XXX
                  #1 zen_calculate_tax() called at [/home/.sites/xx/xx/xx/shop/includes/functions/functions_taxes.php:215]
                  #2 zen_add_tax() called at [/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/templates/tpl_checkout_shipping_default.php:96]
                  #3 require(/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/templates/tpl_checkout_shipping_default.php) called at [/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/common/tpl_main_page.php:261]
                  #4 require(/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/common/tpl_main_page.php) called at [/home/.sites/xx/xx/xx/shop/index.php:97]
                  --> PHP Warning: A non-numeric value encountered in /home/.sites/xx/xx/xx/shop/includes/functions/functions_taxes.php on line 224.
                  
                  [08-Mar-2020 17:52:23 Europe/Vienna] Request URI: /shop/index.php?main_page=checkout_shipping, IP address: XXX
                  #1 zen_add_tax() called at [/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/templates/tpl_checkout_shipping_default.php:96]
                  #2 require(/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/templates/tpl_checkout_shipping_default.php) called at [/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/common/tpl_main_page.php:261]
                  #3 require(/home/.sites/xx/xx/xx/shop/includes/templates/winchester_responsive/common/tpl_main_page.php) called at [/home/.sites/xx/xx/xx/shop/index.php:97]
                  --> PHP Warning: A non-numeric value encountered in /home/.sites/xx/xx/xx/shop/includes/functions/functions_taxes.php on line 215.
                  Immer wieder die functions_taxes in Zeile 224 und 215 ...

                  Was mir gerade einfällt:
                  Ich hoffe es hängt nicht damit zusammen, dass ich als Normalsteuersatz die 20% unter Steuersätze eingetragen, das Modul Steuern (ot_tax) aber nicht installiert habe, da ich die Steuern nicht ausweisen will ...

                  Nachtrag:
                  An der MySQL-Datenbank dürfte es offensichtlich nicht gelegen sein. Das Einspielen auf die 5.5er Datenbank bringt keine Besserung in Bezug auf die oben angeführten Error-Logs der function-taxes ...
                  Bin ratlos
                  Zuletzt geändert von Janis; 09.03.2020, 14:51.

                  Kommentar


                    #10
                    @
                    A non-numeric value encountered in includes/functions/functions_taxes.php

                    Das hat nicht mit dem MySQL strict mode zu tun

                    Verstehe ich das richtig, dass der Artikel schon 20% Steuer enthält, diese Steuern aber nicht angezeigt werden sollen?
                    Du verrechnest also Steuern aber weist sie nicht aus?

                    Welche Einstellungen sind gesetzt unter Konfiguration > Mein Shop - Grundeinstellungen für:
                    Bruttopreise im Shop verwenden
                    Basis der Steuern für Artikel
                    Basis der Steuern für Versand
                    Steuern auch bei 0% anzeigen
                    Gesplittete Steueranzeige

                    Kommentar


                      #11
                      Hallo Webchills,

                      folgende Einstellungen:

                      Welche Einstellungen sind gesetzt unter Konfiguration > Mein Shop - Grundeinstellungen für:
                      Bruttopreise im Shop verwenden / true
                      Basis der Steuern für Artikel / Shipping
                      Basis der Steuern für Versand / Shipping
                      Steuern auch bei 0% anzeigen / 1 (ja)
                      Gesplittete Steueranzeige / true
                      Module - Zusammenfassung - Steuern (ot_tax) ist rot, also nicht installiert.
                      Länder & Stuern - Steuersatz = 20%

                      Verstehe ich das richtig, dass der Artikel schon 20% Steuer enthält, diese Steuern aber nicht angezeigt werden sollen?
                      Du verrechnest also Steuern aber weist sie nicht aus?
                      Das Ganze läuft als Kleinunternehmen weshalb ich keine MwSt. ausweisen möchte ...

                      Wo habe ich jetzt Schei**e gebaut?

                      LG
                      Zuletzt geändert von Janis; 09.03.2020, 21:45.

                      Kommentar


                        #12
                        Wenn dieser Shop bereits im Livebetrieb ist, solltest Du ihn in den Wartungsmodus schalten.

                        Dann sprich mal mit Deinem Steuerberater darüber was Kleinunternehmerregelung bedeutet.
                        Wenn Du keinen Steuerberater hast, nimm eine Beratung der WKO in Anspruch.

                        Als Kleinunternehmer geht es nicht bloß darum, die Steuer nicht auszuweisen, sondern sie gar nicht erst zu verrechnen. Du darfst keine Steuern verrechnen.

                        Bedeutet im Shop:

                        Konfiguration > Mein Shop - Grundeinstellungen
                        Bruttopreise im Shop verwenden : false
                        Steuern auch bei 0% anzeigen : false
                        Gesplittete Steueranzeige : false
                        Preise inkl. Steuern im Adminbereich anzeigen: false

                        Dann das Wichtigste:

                        Völlig egal welche Steuersätze und Steuerzonen angelegt sind:

                        Bei JEDEM Artikel in die Artikelbearbeitung gehen und die Steuerklasse auf - kein - stellen
                        Da Du bisher anscheinend die Steuerklasse 20% verwendet hast, wird danach der Bruttopreis des Artikels zu niedrig sein.
                        Preis auf den wirklichen Endverkaufspreis ändern
                        Nettopreis und Bruttopreis sind bei Dir immer gleich und gleich dem Endverkaufspreis.

                        Bei den Versandkosten ebenfalls überall bei Steuerklasse auf - kein - stellen
                        Und auch sonst unter Module > Zusammenfassung bei Gutscheinen und wo auch immer eine solche Einstellung vorgesehen ist.

                        Hinweis auf die Kleinunternehmerregelung in die pdf Rechnungsvorlage integrieren

                        Hinweis auf die Kleinunternehmerregelung im Shop integrieren so wie z.B. hier beschrieben:


                        Erst nach Gespräch mit Steuerberater und/oder WKO und nach diesen Änderungen den Wartungsmodus wieder ausschalten.

                        Kommentar


                          #13
                          So Webchills, nun habe ich all deine Einstellungen und Ratschläge befolgt.
                          Grundsätzlich passt bis auf eine Log-Meldung alles. Diese kommt sobald ein Artikel in den Warenkorb gelegt wird:
                          Code:
                          [10-Mar-2020 12:18:04 Europe/Vienna] Request URI: /_testshop/index.php?main_page=shopping_cart, IP address: XXX
                          #1 currencies->rateAdjusted() called at [/home/xx/xx/xx/xx/xx/includes/classes/currencies.php:66]
                          #2 currencies->format() called at [/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_modules_shipping_estimator.php:128]
                          #3 require(/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_modules_shipping_estimator.php) called at [/home/xx/xx/xx/xx/xx/includes/modules/shipping_estimator.php:261]
                          #4 require(/home/xx/xx/xx/xx/xx/includes/modules/shipping_estimator.php) called at [/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_shopping_cart_default.php:176]
                          #5 require(/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/templates/tpl_shopping_cart_default.php) called at [/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/common/tpl_main_page.php:261]
                          #6 require(/home/xx/xx/xx/xx/xx/includes/templates/winchester_responsive/common/tpl_main_page.php) called at [/home/xx/xx/xx/xx/xx/index.php:97]
                          --> PHP Warning: A non-numeric value encountered in /home/xx/xx/xx/xx/xx/includes/classes/currencies.php on line 99.
                          Daß ich als Kleinunternehmer keine Steuern verrechen darf war mir schon klar, deshalb ja auch die Ausblendung des Steuerbetrages, der ja nirgends aufschien. Ich dachte nur dass die MwSt nicht komplett ausgeblendet werden darf, da ich sie ja auch zahlen muss aber eben nicht verrechnen darf.
                          Egal, habe alles umgeändert ...



                          Nachtrag:

                          Ich konnte mittlerweile feststellen, dass der Log-Eintrag nur dann erfolgt, sobald als Versandziel jenes Land eingetragen ist, für welches als zusätzliche Versandart Selbstabholung möglich ist.

                          Ferner fiel mir auf, dass der Punkt "Versandzone: Wenn Sie hier eine Zone auswählen, wird Selbstabholung nur in dieser Zone angeboten." wirklungslos ist.
                          Trotz aktivierter Zonen haben die Länder dieser Zone die Option Selbstabholung nicht.
                          Es geht nur mit den Länder-ISO-Codes, dafür aber mit oa. Log-Fehlermeldung.

                          Vielleicht hat ja jemand das gleiche Problem oder kann dieses reproduzieren.

                          Danke im Voraus



                          Nachtrag 2:

                          Nach unzählen Versuchen mit verschiedenen Versionen und Templates bin ich auf "meinen" Fehler selbst drauf gekommen, dessen Ursprung ich nicht vorenthalten möchte, zumal dies ja auch anderen "passieren" kann.

                          Die oa. Fehlermeldung kommt, wenn man unter der Selbstabholadresse zwischen Ort und Straße wie eigentlich üblich einen Beistrich setzt.
                          zum Beispiel: 1010 Wien, Bergweg 1

                          Da aber gerade dieser Beistrich das Trennzeichen zwischen Adresse und Kosten für die Abholung an dieser Adresse darstellt, kommt es logischerweise zu einer Error-Log-Ausgabe.

                          Da muss man aber auch erstmal draufkommen ...

                          Vielleicht hilft mein stundenlanges Herumprobieren und Fehlereinschränken ja sonst noch wem.

                          LG
                          Jan
                          Zuletzt geändert von Janis; 12.03.2020, 16:19.

                          Kommentar

                          Info zu diesem Forenarchiv:
                          Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                          Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                          Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                          PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                          Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                          FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                          Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                          Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                          Fehler in der Software können auf Github als Issues gemeldet werden.
                          Follow us
                          aktuelle version
                          Zen Cart 1.5.7h deutsch
                          vom 15.04.2024
                          [Download]
                          Lädt...
                          X