﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking
2058	PHP8 Inkompatiblität in header.php	johannes@…	somebody	"Leider kann ich das Problem nicht im Demoshop reproduzieren, da dieser nicht mit PHP8 läuft.

Es geht um diesen Fehler:
{{{
ERROR found for URL: /checkout_shipping.php	{}	{}
method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given in File: /webroot/includes/header.php on Line: 132	{}	{}
}}}

Dieser tritt auf, wenn ein neukunde nach dem Anlegen des Accounts auf die checkout_shipping.php Seite kommt und aufgefordert wird die Datenschutzbestimmungen zu bestätigen.

In diesem Fall ist die ""$shipping_modules"" Variable ""null"", was durch eine Änderung, die mit PHP8 gekommen ist zu diesem Fehler führt.

Der betroffene Code in header.php ist dieser hier:
{{{
  case FILENAME_CHECKOUT_SHIPPING:
      require('includes/form_check.js.php');
      if ($method_exists($shipping_modules, 'javascript_validation')) {
        echo $shipping_modules->javascript_validation();
      }
    break;
}}}

Ein möglicher Fix wäre:

{{{
  case FILENAME_CHECKOUT_SHIPPING:
      require('includes/form_check.js.php');
      if ($shipping_modules && method_exists($shipping_modules, 'javascript_validation')) {
        echo $shipping_modules->javascript_validation();
      }
    break;
}}}

Es ist nicht auszuschließen, dass die ""$payment_modules"" Variable evbenfalls ein ähnliches Problem verursacht, daher sollte vielleicht noch der Code entsprechend angepasst werden:
{{{
  case FILENAME_CHECKOUT_PAYMENT:
      require('includes/form_check.js.php');
      if (method_exists($payment_modules, 'javascript_validation')) {
        echo $payment_modules->javascript_validation();
      }
    break;
}}}"	Bug/Fehler	closed	hoch	modified-shop-2.0.7.0	Shop	2.0.6.0	fixed				
