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: modified eCommerce Shopsoftware 2.0.6.0 rev 13500 veröffentlicht

    berni

    • Neu im Forum
    • Beiträge: 12
    Servus,
    ich hab den Shop auf 2.0.6.0 mit PHP8 am laufen.
    Ich bekomme eine Fehlermeldung bei der Erstellung eines neuen Accounts, wenn die Anrede über die Kundendetails eingeschaltet ist.
    Bisherige Accounts können sich einloggen.
    Hab ich beim Update einen Fehler gemacht oder ist das bei jemand anderem ebenfalls so?
    Danke für ne Hilfe.
    Wenn ich die Anrede Abfrage in den Kundendetails ausschalte ist das "Problem" umgangen, aber nicht behoben.
    Hier die Fehlermeldung aus dem mod_error log.

    [2021-04-27 00:18:23] [error] [modified] [pid:119802] ERROR found for URL: /create_account.php {} {}
    [2021-04-27 00:18:23] [error] [modified] [pid:119802] Undefined constant "DIVERSE" in File: /.../create_account.php on Line: 558 {} {}
    [2021-04-27 00:30:25] [error] [modified] [pid:54082] ERROR found for URL: /create_guest_account.php {} {}
    [2021-04-27 00:30:25] [error] [modified] [pid:54082] Undefined constant "DIVERSE" in File: /.../create_guest_account.php on Line: 395 {} {}
    [2021-04-27 00:40:02] [error] [modified] [pid:103218] ERROR found for URL: /create_account.php {} {}

    Berni

    snocer

    • Fördermitglied
    • Beiträge: 312
    Undefinierte Konstanten sind in PHP8 nicht mehr erlaubt. Konstante "Diverse" muss deklariert werden.
    Kannst einfach mal testen, wenn Du die Anrede als Pflichtfeld weg lässt. Dann sollte eine Registrierung auch wieder möglich sein.

    cu snocer

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    Das hilft ihm doch nicht weiter.
    Der Fehler liegt daran, dass die Datei "/lang/german/german.php" anscheinend nicht aktualisiert wurde oder du sie nachträglich wieder überschrieben hast, da du in der Datei Änderungen vorgenommen hattest.

    Änderungen an Sprachdateien müssen immer in den aktuellen Dateiversionen gemacht werden oder noch besser, du machst an den Dateien überhaupt keine Änderungen, sondern kopierst dir die gewünschten Konstanten in eine neue Datei "/lang/german/extra/custom.php", die per "auto_include" geladen und includiert wird.

    Grüße

    Torsten

    snocer

    • Fördermitglied
    • Beiträge: 312
    man geht ja nicht davon aus, das sich ein Anwender seine neuen Dateien mit älteren Versionen aus der 2.0.5.x oder noch älter einfach wieder überschreibt. Den Extra Ordner mit den entsprechenden Dateien gibt es doch schon länger. So hat er einfach das noch nicht verinnerlicht. Jetzt wahrscheinlich dann schon.

    Du hast es ihm ja noch einmal deutlich erklärt.

    cu snocer

    berni

    • Neu im Forum
    • Beiträge: 12
    Kurze Rückmeldung.
    Ich hatte tatsächlich irgendwie eine alte Datei /lang/german/german.php

    Hab die Datei aus dem Updatepaket genommen, jetzt funktioniert es.

    DANKE für die Hilfe!
    Berni

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    Wenn diese eine Datei schon nicht aktualisiert wurde, dann ist davon auszugehen, dass das Problem auch andere Dateien betrifft!
    Lade bitte alle Dateien nochmal per FTP hoch und achte darauf, dass die Warteschlange komplett abgearbeitet wird! Im Falle von FileZilla kannst du fehlgeschlagene Übertragungen erneut in die Warteschlange hinzufügen und diese erneut abarbeiten lassen.

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    [...] sondern kopierst dir die gewünschten Konstanten in eine neue Datei "/lang/german/extra/custom.php", die per "auto_include" geladen und includiert wird.
    [...]

    ..was zu einer "constant already defined" Notice führen würde wenn es die Konstante bereits geben sollte,
    weshalb ich auch diese Aussage in Ticket #1944 nicht verstehe:

    Zitat von: Tomcraft
    [...]
    Der Text für "Divers" kann in den Sprachdateien beliebig geändert werden.
    [...]

    Es sei denn es wäre gemeint die Definition nicht-update-sicher zu überschreiben, was mich dann wiederum aus anderen Gründen wundern würde.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.185
    • Geschlecht:
    So funktioniert das "auto_include" System der Sprachdateien aber derzeit nun einmal.
    Die "Notices" dabei behindern die Funktion nicht.

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Das stimmt. Ich hätte bei Einbau des "auto_include" allerdings sofort auf

    Code: PHP  [Auswählen]
    defined('ABC', 'XYZ') OR define('ABC', 'XYZ');

    umgestellt, was, wenn nicht per Skript durchgeführt, zugegebenermassen eine aufwändige Arbeit gewesen wäre.
    Eine Arbeit allerdings, die man wunderbar an bereitwillige Community-Mitglieder hätte out-sourcen können.
    Wahrscheinlich ist allerdings ja ein neues System für i18n geplant... :mhhh: :glaskugel:

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.048
    Anmerkung:
    Wer das neue Cookies-Modul vorher schon in den Shop als updatesicheres Modul eingebaut hatte, sollte nicht vergessen die auto_include Dateien wieder zu entfernen, da dieses Modul in der neuen Version jetzt Teil der Software ist und nicht als externes Modul eingebaut wurde. 
    Hatte gerade einen ähnlichen Fall, wo dann die Cookie-Consent Auswahl nicht mehr angezeigt wurde.
    Außerdem scheint es, bei Verwendung mehrerer Sprachen zusätzlich zu deutsch und englisch, jetzt beim internen Modul Probleme zu geben. Erst als ich händisch in die Installationsdatei die Werte z.B. für Spanisch eingetragen hatte, wurde endlich der Cookies-Auswahl-Wall angezeigt. Dieses Problem ist mit dem auto_include Modul nicht aufgetreten.
    Habe ich getestet und dafür das interne Modul noch mal ausgebaut. Gleichfalls finde ich es nicht so gut, wenn man das Modul deinstalliert, dass die zusätzlichen angelegten DB-Tabellen nicht deinstalliert werden.

    BG Karsta

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Karsta,
    was für Dateien genau meinst du denn?

    In "_installer/includes/delete_files.php" sind einige zu löschende Dateien enthalten.
    - DIR_ADMIN.'includes/extra/filenames/cookie_consent.php',
    - 'includes/extra/ajax/cookie_consent.php',
    - 'includes/extra/database_tables/cookie_consent.php',
    usw.

    Gruß Karl

    karsta.de

    • Experte
    • Beiträge: 3.048
    Das hatte ich bisher nicht nachgesehen, aber schon komisch, habe den Installer ganz normal fürs Update verwendet, doch die Dateien lagen alle noch auf dem Server.

    BG Karsta

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    [...]
    Außerdem scheint es, bei Verwendung mehrerer Sprachen zusätzlich zu deutsch und englisch, jetzt beim internen Modul Probleme zu geben. Erst als ich händisch in die Installationsdatei die Werte z.B. für Spanisch eingetragen hatte, wurde endlich der Cookies-Auswahl-Wall angezeigt. Dieses Problem ist mit dem auto_include Modul nicht aufgetreten.
    Habe ich getestet und dafür das interne Modul noch mal ausgebaut. Gleichfalls finde ich es nicht so gut, wenn man das Modul deinstalliert, dass die zusätzlichen angelegten DB-Tabellen nicht deinstalliert werden.
    [...]

    Es verhält sich so:
    • Da man im System-Modul nicht alle erdenklichen Sprachen vorhersehend mit Inhalten füllen kann, loopt man im Code zwar durch die im Shop vorhandenen Sprachen, legt die erforderlichen Felder in der DB jedoch leer an.
      Eigtl. sollte das für jede nicht im System-Modul definierte Sprache
      - und das sind alle außer 'de' und 'en' -
      eine Notice mit "undefined index" generiert werden, weshalb man die Werte vielleicht besser, z.B. mittels der Verwendung von switch(), mit default 'en' füllen sollte.
    • Um die Funktion nach Installation des System-Modules zu gewährleisten muß man lediglich alle Einträge unter Konfiguration => Cookie Consent einmal aufrufen, ggfls. fehlende Sprach-Werte ergänzen und speichern.
    Es muß also keine Datei angepasst werden.
    Würde man vorgehen wie ich oben sagte, also nicht per Default im Shop vorhandene Sprachen mit den engl. Werten füllen, müsste man Punkt 2. ebenfalls ausführen. Es lässt sich also darüber streiten wie man es code-technisch machen sollte.

    Gruß,
    noRiddle

    *NACHTRAG*
    Daß die durch das System-Modul bereits angelegten DB-Tabellen nicht bei Deinstallation gelöscht werden ist u.A. auf meine Initiative hin entstanden. Wenn die Tabellen nämlich gelöscht werden kann man im Falle, daß man das Modul nochmals benutzen möchte, alle Daten neu eingeben, z.B. auch zusätzlich zum Default angelegte Cookies (z.B. für Cloudflare u.Ä.).
    Ich bin der Meinung, daß die Tabellen und Daten nicht stören. Das gilt für alle Zusatz-DB-Tabellen die Module anlegen.

    karsta.de

    • Experte
    • Beiträge: 3.048
    @noRiddle
    Das man die Werte standardmäßig nicht in die Installationsdatei schreiben muss, ist mir klar. Wie ich schrieb, hat das mit dem externen Modul auch korrekt funktioniert, aber eben nicht mit dem internen Modul nicht. Und das die Felder für eine dritte Sprache ausgefüllt werden können ist auch sonnenklar. Wenn ich es nicht getestet hätte, hätte ich die Installationsdatei auch gar nicht geändert. Habe hier nur aufgezeichnet wie es dann funktioniert hat.

    BG Karsta

    Nachtrag: Ich habe gerade in einem Shop einen umfangreichen Datenbank Subotnik gemacht und kann sagen in manchen Shop-DB liegen unglaublich viele DB-Leichen, die schon zum Schluss der xtc-Zeiten tot waren. Und bei manchen Shops sind durch alte Installationen, die nur testweise durchgeführt wurden, Unmengen an Datenmüll in den DB (gutes Beispiel: Magnalister).

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Naja, "nur aufgezeichnet wie es dann funktioniert hat" ist ja nicht förderlich, so als ob wir hier im Forum Tagebücher darüber führen wie wir Probleme lösen. Wir müssen ja daran denken was das, was wir schreiben, bei unbedarften Usern bewirkt.
    Was genau hat denn bei dem extra eingebauten Modul anders funtioniert als bei dem nun im Download-Paket bereits integrierten ?

    Gruß,
    noRiddle

    *NACHTRAG*
    Ein Dateivergleich der wichtigen Dateien
    /admin/includes/modules/system/cookie_consent.php
    und
    /admin/cookie_consent.php
    zeigt code-mäßig keine Unterschiede.
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware