Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
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: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Hallo,
    Ich nutze den Connector für die Wawi Orgamax/Wiso MeinBüro.
    Nach ein paar Anpassungen funktioniert der auch mit PHP 8.0.25
    Stelle ich auf PHP 8.1 um, erhalte ich folgende Errormeldung und der Connector funktioniert nicht mehr.
    Code: PHP  [Auswählen]
    [Sun Jan 01 11:13:33 2023] [php:error] [pid 19087] [client 2.204.38.118] [host stradivarishop.com] PHP Fatal error:  Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 12439' at line 1 in adresse zum Connector/inc/shops/xtcommerce.php:167\nStack trace:\n#0 /adresse zum Connector/inc/shops/xtcommerce.php(167): mysqli_query(Object(mysqli), 'SELECT IFNULL(c...')\n#1 /adresse zum Connector/inc/functions.php(241): row_ueberpruefen(Array)\n#2 /adresse zum Connector/mb_osc.php(53): PositionEintragen(Array, '[?xml version="...')\n#3 {main}\n  thrown in /adresse zum Connector/inc/shops/xtcommerce.php on line 167
    Die Zeile 167 in der xtcommerce.php lautet:
    Code: PHP  [Auswählen]
    $qRes = mysqli_query($GLOBALS['sql_con'], $query);
    Die Zeile 241 in der functions.php:
    Code: PHP  [Auswählen]
    $row= row_ueberpruefen($row);
    Die Zeile 53 in der mb_ocs.php:
    Code: PHP  [Auswählen]
    $XMLDoc = PositionEintragen($row, $XMLDoc);
    Gibt es einen Tipp, wie ich das Problem beheben kann?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42731.0
    rechtstexte für onlineshop

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #1 am: 02. Januar 2023, 17:55:23
    In Zeile 167 der xtcommerce.php wird die Query als $qRes zwar mit mysqli_query ausgeführt, aber ein Stück weiter oben wird sie ja erst mit Namen $query gebildet.

    Es wäre also hilfreich, wenn du auch dieses Snippet postest, auch wenn ich mir nicht vorstellen kann, dass da etwas ist, was erst ab PHP 8.1 zu Problemen führt.

    Aber lieber an einer Stelle zu viel geguckt, als an einer zu wenig. ;-)

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #2 am: 02. Januar 2023, 17:59:13
    Hallo und schön, dass Du hier mal wieder zu "hören" bist!
    xtcommerce.php
    Code: PHP  [Auswählen]
    $query = "SELECT IFNULL(customers_email_address, customers_telephone)";
    $query .= "FROM orders";
      $query .= "WHERE customers_id = ".$row['KundennummerWebshop']."";
                             $qRes = mysqli_query($GLOBALS['sql_con'], $query);
            if ($qRes)
            {
                   
                    $row = mysqli_fetch_assoc($qRes);
            $row['customers_email_address'] = $qRow['abweichendRechnungEmail'];
                   
                    }

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #3 am: 02. Januar 2023, 18:04:45
    Ja, hab mal ein paar Tage frei und wollte mich mal wieder "blicken" lassen. ;-)

    Was passiert, wenn du diese Zeile:

    Code: PHP  [Auswählen]
    $query .= "WHERE customers_id = ".$row['KundennummerWebshop']."";

    so abänderst:

    Code: PHP  [Auswählen]
    $query .= "WHERE customers_id = '".$row['KundennummerWebshop']."'";

    ???

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #4 am: 02. Januar 2023, 18:22:21
    Ändert leider nichts. Errormeldung bleibt identisch.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #5 am: 02. Januar 2023, 18:32:21
    Schade, ich hatte gehofft, es wäre so eine banale Sache.  :-X

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #6 am: 02. Januar 2023, 19:34:01
    Wenn das ein Versionssprung von PHP 7x auf 8 gewesen wäre, hätte ich auch mehr Hoffnung gehabt.😉

    Timm

    • Fördermitglied
    • Beiträge: 6.259
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #7 am: 02. Januar 2023, 20:51:20
    Moin

    Wo bekommt man denn den Connector her? Hab mir hier: https://www.buhl.de/shop/faqs?article=831 das runtergeladen und da steht in Zeile 167 etwas ganz anderes.

    Und wenn man die erste Fehlermeldung

    Code: XML  [Auswählen]
    right syntax to use near '= 12439' at line 1 in adresse zum Connector/inc/shops/xtcommerce.php:167

    liest, dann sieht das doch eher nach PLZ aus, aber in deiner Codestelle geht es nicht um die PLZ.

    Gruß Timm

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #8 am: 02. Januar 2023, 21:32:02
    Moin Timm,

    das ist gut möglich,ich musste den Connector vielfach anpassen,damit er für mich ok ist und überhaupt mit php8 läuft.Aber die Fehlermeldung bezieht sich sicher auf "meine" xtcommere.php und die ist so wie zitiert.

    Q

    • Fördermitglied
    • Beiträge: 1.537
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #9 am: 02. Januar 2023, 23:57:14
    Ich vermute die Abfrage funktioniert bei älteren PHP Versionen auch nicht, wird nur da nicht als Error "geworfen".  Wenn ich das richtig verstanden habe wird ab PHP 8.1 das mit sqli etwas intoleranter bezüglich Fehler.
    Kann die Query gerade nicht testen. Bestimmt was banales wie Leerzeichen oder so.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.992
    • Geschlecht:
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #10 am: 03. Januar 2023, 00:04:29
    @Viol

    Bezieht sich denn ' = 12439' auf das hier ?
    Code: PHP  [Auswählen]
    $row['KundennummerWebshop']

    Ich hätte ja auch auf awids  Idee getippt.
    Bist du sicher, daß der Versuch richtig durchgeführt wurde ?

    Allerdings ist die customers_id  in der Tabelle orders  ja ein Integer (hoffentlich auch bei dir) und dann sind Anführungsstriche nicht nötig.

    Dürfte zwar eigtl. nichts ausmachen, aber ändere mal dies
    Code: PHP  [Auswählen]
    $query .= "WHERE customers_id = ".$row['KundennummerWebshop']."";

    ind das
    Code: PHP  [Auswählen]
    $query .= "WHERE customers_id = ".$row['KundennummerWebshop'];

    Woher kommt $row['KundennummerWebshop']  ?
    Wenn das ein String ist und die customers_id  in der Tabelle orders  auch bei dir ein Integer ist, dann versuche mal einen Cast:
    Code: PHP  [Auswählen]
    $query .= "WHERE customers_id = ".(int)$row['KundennummerWebshop'];

    Gruß,
    noRiddle

    Q

    • Fördermitglied
    • Beiträge: 1.537
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #11 am: 03. Januar 2023, 00:12:28
    Was passiert, wenn du vor dem FROM und vor dem WHERE ein Leerzeichen setzt?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.992
    • Geschlecht:
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #12 am: 03. Januar 2023, 00:15:35
    Die fehlen in der Tat.
    Anständig formatiert sollte da so aussehen:
    Code: PHP  [Auswählen]
    $query = "SELECT IFNULL(customers_email_address, customers_telephone)";
    $query .= " FROM orders";
    $query .= " WHERE customers_id = ".$row['KundennummerWebshop'];
    $qRes = mysqli_query($GLOBALS['sql_con'], $query);
    if ($qRes) {
      $row = mysqli_fetch_assoc($qRes);
      $row['customers_email_address'] = $qRow['abweichendRechnungEmail'];
    }

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.992
    • Geschlecht:
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #13 am: 03. Januar 2023, 12:08:11
    Hierzu fiel mir noch ein, daß es wichtig ist woher die Werte des Arrays $row  kommen, denn sie müssen ggfls. gegen SQL-Injection abgesichert werden, was sie nach dem kleinen Code-Ausschnitt zu urteilen nicht sind.

    Gruß,
    noRiddle

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Re: Fehler in Connector nach Umstellung von PHP 8 auf PHP 8.1
    Antwort #14 am: 03. Januar 2023, 19:22:14
    Danke zu nächst für Eure Hilfe. Ich konnte das noch nicht ausgiebig testen. Ich melde mich dazu dann.
    15 Antworten
    10889 Aufrufe
    26. März 2013, 08:01:38 von schwadda100
    6 Antworten
    4363 Aufrufe
    21. Januar 2014, 17:24:03 von ShopNix
    19 Antworten
    13713 Aufrufe
    03. August 2015, 13:17:35 von toppi