Fehler in "system/views/CartShippingCostsContentView.inc.php"

Thema wurde von Avenger, 14. Juli 2014 erstellt.

  1. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Da bei mir im Warenkorb das Versandgewicht mit "0" angegeben wurde, obwohl der Artikel ein Gewicht hat, habe ich das mal debugged...

    Das Versandgewicht wird dort berechnet mit

    PHP:
                $t_shipping_weight =  gm_prepare_number($GLOBALS['shipping_num_boxes'] *  $GLOBALS['shipping_weight'],  $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
    "$GLOBALS['shipping_num_boxes']" und "$GLOBALS['shipping_weight']" sind dabei allerdings undefiniert, so dass der Wert 0 errechnet wird.

    Wenn ich das ändere zu

    PHP:
          global $shipping_weight$shipping_num_boxes;

           
    $t_shipping_weight gm_prepare_number($shipping_num_boxes *  $shipping_weight,  $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
    wird der richtige Wert ermittelt....
     
  2. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.693
    Danke vergeben:
    903
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist aber wie es ist....

    Natürlich habe ich das ausprobiert.

    Die erste gibt "0", die korrigierte den richtigen Wert...
     
  4. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    Laufen bei dir irgendwelche PHP-Beschleuniger, OpCode-Caches o. dgl.?
     
  5. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nein, ein Standard-XAMPP.
     
  6. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.693
    Danke vergeben:
    903
    Wirklich mal ein
    PHP:
    global $shipping_weight;
    var_dump($shipping_weight);
    var_dump($GLOBALS['shipping_weight']);
    ausprobiert? Die Ursache des Problems sehe ich dann aber in der Serverkonfiguration. Es gibt echt keinen Grund global $variable; zu nutzen.
     
  7. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    Kannst du mal ausprobieren, ob du das Verhalten „draußen“, also in einem normalen Webspace, auch noch reproduzieren kannst?
     
  8. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    Ich habe so eine vage Ahnung, wo der Haken begraben liegt. Ich habe mal 2.0.15.4 nach „shipping_num_boxes“ durchsucht: Die Variable wird von den Versandkostenmodulen per „global“ definiert. Das ist also immer innerhalb eines Objektes (dessen Klassendefinition erschwerenderweise auch noch in PHP4-Synax ist), eine echte Deklaration im globalen Namensraum gibt es nicht. Daher meine Vermutung, dass da irgendein PHP-Beschleuniger den Faden verliert.
     
  9. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ja, gerne...

    Hier die Variante mit

    PHP:
    $t_shipping_weight gm_prepare_number($GLOBALS['shipping_num_boxes'] * $GLOBALS['shipping_weight'], $xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
    => Gewicht ist "0"....

    cart1.jpg

    Hier die Variante mit

    PHP:
          global $shipping_weight$shipping_num_boxes;

          
    $t_shipping_weight gm_prepare_number($shipping_num_boxes $shipping_weight$xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
    => Gewicht ist OK....

    cart2.jpg
     
  10. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.693
    Danke vergeben:
    903
    Ich habe mich nochmals der Sache gewidmet und konnte das Problem nicht reproduzieren.