Opened 5 years ago
Last modified 5 years ago
#2058 closed Bug/Fehler
PHP8 Inkompatiblität in header.php — at Version 1
| Reported by: | Owned by: | somebody | |
|---|---|---|---|
| Priority: | hoch | Milestone: | modified-shop-2.0.7.0 |
| Component: | Shop | Version: | 2.0.6.0 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description (last modified by )
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;
Change History (1)
comment:1 by , 5 years ago
| Description: | modified (diff) |
|---|---|
| Milestone: | → modified-shop-2.0.6.1 |
