Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#2401 closed Bug/Fehler (fixed)

Datenbankwiederherstellung bei PHP 8 nicht möglich

Reported by: oneQ Owned by: somebody
Priority: hoch Milestone: modified-shop-2.0.8.0
Component: Admin Version: 2.0.7.2
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by Torsten Riemer)

Wiederherstellung bleibt bei der Tabelle configuration hängen.
Siehe auch Forum modified eCommerce Shopsoftware 2.0.7.2 rev 14622 veröffentlicht

Attachments (0)

Change History (10)

comment:1 by oneQ, 3 years ago

DB: MySQL 10.5.16
PHP Version: 8.1.7

Wenn man nur von der Tabelle configuration ein Backup macht und wiederherstellt, das gleiche Ergebnis.

comment:2 by Torsten Riemer, 3 years ago

Description: modified (diff)

comment:3 by Torsten Riemer, 3 years ago

Eine mögliche Lösung hat noRiddle hier veröffentlicht: modified eCommerce Shopsoftware 2.0.7.2 rev 14622 veröffentlicht

comment:4 by noRiddle, 3 years ago

In modified eCommerce Shopsoftware 2.0.7.2 rev 14622 veröffentlicht | Antwort #138 habe ich noch Gründe aufgeführt die application_top.php in die backup_restore.php zu includieren, weil es ansonsten in Erweiterungen (mittels auto_include()) zu Errors und Warnings kommen kann.

Gruß,
noRiddle

Last edited 3 years ago by Torsten Riemer (previous) (diff)

comment:5 by Gerhard Waldemair, 3 years ago

Bei einem Restore wird nur in der Session ein auto_include greifen um andere Sessionhandler zu ermöglichen. Erweiterungen müssen hier sauber programmiert sein.

Das Ticket wird wie folget gelöst:

if (defined('DELETE_GUEST_ACCOUNT') && DELETE_GUEST_ACCOUNT == 'true') {
Last edited 3 years ago by Torsten Riemer (previous) (diff)

comment:6 by Gerhard Waldemair, 3 years ago

Resolution: fixed
Status: newclosed

In 14772:

fix #2401 - check für defined constant due to problems on backup restore

comment:7 by noRiddle, 3 years ago

Nehmen wir an ich habe ein Sprachfile in /lang/SPRACHE/extra/admin/ welches z.B. $PHP_SELF benutzt oder die Funktion xtc_href_link(). Dieses Sprach-File ist für irgendeine Erweiterung.
Da die /admin/backup_restore.php die /admin/includes/head.php includiert ist das genannte Sprach-File ebenfalls includiert und schon kommt es zu "undefine variable" oder "undefined function". Damit rechnet man jedoch nicht und ich hab's jetzt zufällig entdeckt weil ich das Restore mal testen wollte, welches ich normalerweise nicht benutze.
Mit "Erweiterungen müssen hier sauber programmiert sein." meinst du dann wohl, daß man in solchen Sprach-Files wie dem aufgeführten in einer if-Condition die betroffene Seite abfragt ?
Also z.B.

if(basename($_SERVER['SCRIPT_NAME']) == 'categories.php' && isset($_GET['action']) && $_GET['action'] == 'new_product') {
  define(WAS_WEISS_ICH; 'blablabla');
}

Wie gesagt, damit rechnet man nicht, weil im allgemeinen die application_top.php überall im Backend zur Verfügung steht.

Gruß,
noRiddle

comment:8 by Gerhard Waldemair, 3 years ago

In der head.php werden nur 2 auto_include ausgeführt und die header.php wird nicht includiert.

DIR_FS_ADMIN.'includes/extra/css/'
DIR_FS_ADMIN.'includes/extra/javascript/'

Beide finde ich an der Stelle unkritisch.

comment:9 by noRiddle, 3 years ago

Weiß nicht mehr wie ich auf die head.php gekommen bin (mache zu viele Sachen parallel, ächz).
Was ich meine ist diese Zeile in der backup_restore.php:

require(DIR_FS_LANGUAGES . $_SESSION['language'] . '/admin/'.$_SESSION['language'] . '.php');

Dadurch werden ja auch alle "/lang/SPRACHE/extra/admin/"-Files automatisch includiert und dann kann es zu dem Genannten kommen.
Man muß es halt nur wissen und wohl am besten den Code in if-Conditions packen, wie ich es beschrieben habe. Hätte auch den Vorteil, daß weniger geladen wird wo es nicht nötig ist.

Gruß,
noRiddle

comment:10 by Gerhard Waldemair, 3 years ago

In 14940:

fix #2401 - remove default language file from backup_restore.php due to problems with auto includes

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.