Alle Upload-Funktionen klappen nicht unter PHP 8.0

  • Hallo,


    ich bin sehr mit der JOOM-Gallery zufrieden, allerdings kann ich keine einzige der Upload-Funktionen unter PHP 8 nutzen; bei allen kommen Fehlermeldungen - unter PHP 7.4.32 funktioniert es einwandfrei.


    Leider wird nun PHP 7.4 Ende diesen Jahres abgekündigt und JOOMLA empfiehlt dringend ein Upgrade auf PHP 8 ... zudem würde ich gerne auf JOOMLA 4 upgraden, aber daran arbeitet Ihr ja :)


    Aber gibt es eine Lösung für das Upload-Problem?


    Hier die System-Eckdaten: PHP 7.4.32, mySQL 5.7.38, JOOMLA 3.10.11


    Danke und schöne Grüße

    Markus Stein

    Startseite

  • Hallo,


    sorry für meine späte Antwort - ich war diese Woche unterwegs.


    Und natürlich habt Ihr Recht, hier die genauen Fehlermeldungen zu posten. Zunächst habe ich bei meinem Hoster (Ionos) auf PHP 8.0.24 umgestellt, mySQL ist bei 5.7.38 geblieben. Joomla ist in der Version 3.10.11, die Galerie und genutzten Erweiterungen sind alle auf dem neuesten Stand (3.6.0).


    Nun zu den Fehlermeldungen:


    1) Beim regulären Upload (also Auswahl von bis zu 10 Dateien) und Auswahl der Kategorie => "Unsupported operand types: string * null"


    2) Drag'n Drop Upload => "NiederschlesienInsp...ufstellung.jpg 49.3kB Upload fehlgeschlagen"


    3) FTP-Upload => "Unsupported operand types: string * null"


    Das Interessante ist, dass ich nun beim Kopieren der Beispieldatei in das FTP-Verzeichnis gesehen habe, dass unter temp/ ein Unterverzeichnis mit dem Dateinamen der hochzuladenden Datei angelegt wurde - darin ist auch die Datei enthalten.


    Wie gesagt, unter PHP 7.4.32 klappt alles - aber das PHP endet Ende diesen Jahres und würde für ein weiteres Aufrechterhalten bei Ionos extra Gebühren kosten.


    Vielleicht habt Ihr ja eine Idee mit den o.a. Fehlermeldungen.


    Schöne Grüße

    Markus Stein

  • Das hätte ich natürlich gleich machen können ... habe ich nun ausgeführt, es kommt beim regulären Update (oben Punkt 1) nur die angebene Fehlermeldung mit einer "0" in schwarzem Rechteck.


    Zwischenschritte oder sonstige Fehlermeldungen werden im Debug-Modus nicht angezeigt.


    Seltsam, dass es bei anderen PHP 8.x Installationen klappt.


    Schöne Grüße

    Markus Stein

  • Noch ein Nachtrag - nachdem ich wieder auf PHP 7.4 zurück bin, funktioniert auch die Anzeige des Debug-Modus - siehe hier das Ergebnis:


    ___Debug___

    Position: 1

    Dateiname: NiederschlesienInspektion_Aufstellung.jpg

    Upload beendet...

    Resizing to height using GD...

    Thumbnail erstellt...

    Größenänderung ist nicht notwendig, da das Bild bereits klein genug ist

    Detail image created (File-Size: 49.29 KB)

    Das Bild wurde erfolgreich hinzugefügt!

    Neuer Dateiname: niederschlesieninspektion_aufstellung_20221102_1840506866.jpg


    Das wird bei PHP 8.0 überhaupt nicht angezeigt, sondern es wird gleich zur Fehlermeldung gesprungen.


    Schöne Grüße

    Markus Stein

    • Offizieller Beitrag

    Ich denke, das Problem ist nun identifiziert. Der Hoster IONOS definiert in der php.ini den Wert von memory_limit mit -1.

    Die JoomGallery prüft den Wert von memory_limit auf bestimmte Einheiten (K, M, G). Der (unlogische) Wert -1 verursacht einen Fehler bei dieser Prüfung.

    Vermutlich können wir das Problem lösen indem wir in Zeile 2326 und 2332 die Prüfung von != 0 auf > 1 ändern. Einen Vorschlag habe ich mal auf Github eingereicht.

  • Hallo liebe Community,

    bei mir ist dasselbe Problem, wir sind auch bei IONOS. Ich habe die Änderungen aus dem Pull Request bei mir lokal nachgezogen und damit geht es.

    Wenn man (ohne die Korrektur) über das Frontend hochlädt, erhält man diese Fehlermeldung:

    Übrigens besteht das Problem immer dann, wenn man Bilder ändert. Also nicht nur beim Upload sondern z.B. auch, wenn man den Schalter "Dynamische Thumbnailgröße" eingeschaltet hat. Dann werden einfach die Bilder nicht angezeigt. Geht man jetzt mit der jeweiligen URL zum Bild in ein Browserfenster erscheint ebenfalls die Meldung oben.

    Beispiel:

    https://myhost.com/index.php/g…t=raw&type=thumb&id=2215&width=198&height=132&pos=2



    Wie gesagt, ich habe die Änderungen bei mir nachgezogen, daher kann ich jetzt erstmal auf PHP 8.0 schalten (wenn nicht noch irgendwas auftaucht ;-)).


    Wird diese Änderung nochmal irgendwann veröffentlicht? Mit einer 3.6.1 oder so? Und wird dieser Aspekt auch für JoomGallery 4 berücksichtigt?


    Vielen Dank für eure Arbeit

    Axel

  • Ich denke, das Problem ist nun identifiziert. Der Hoster IONOS definiert in der php.ini den Wert von memory_limit mit -1.

    Die JoomGallery prüft den Wert von memory_limit auf bestimmte Einheiten (K, M, G). Der (unlogische) Wert -1 verursacht einen Fehler bei dieser Prüfung.

    Vermutlich können wir das Problem lösen indem wir in Zeile 2326 und 2332 die Prüfung von != 0 auf > 1 ändern. Einen Vorschlag habe ich mal auf Github eingereicht.

    Hallo,


    ich bekomme beim Uploaden ebenfalls die Fehlermeldung "Unsupported operand types: string * null".

    Ich möchte die php.ini jetzt dahingehend ändern, finde sie aber nicht. Muss ich mich daher mit Ionos in Verbindung setzen? Oder gibt es noch eine andere Möglichkeit?


    Vielen Dank

    Kueppers


    Mein System:

    PHP: 8.0.26

    Joomla 3.10.11

    Joom Gallery: 3.6.0

  • Hallo MrMusic,

    Ich habe ähnlich das Problem wie Kueppers, wobei die Fehlermeldung etwas ändert:


    0 - Too few arguments to function Joomla\CMS\Table\Table::__construct(), 1 passed in

    /mnt/web307/e2/55/5121255/htdocs/joomla3/libraries/src/Table/Table.php on line 328 and exactly 3 expected


    Ich habe Joomla von 3.6.5 auf 3.10.11 upgrade und

    PHP von 7.4.33 auf 8.0.27.

    Meine Host ist Strato.

    Ich habe aber im System kein PHP.ini gefunden.

    Seit dem Upgrade auf PHP 8 funktioniert Joomla Gallery nicht mehr.


    Würden Sie mir bitte helfen ? Vielen Dank.

    AlainTruc

    • Offizieller Beitrag

    Sieht so aus, als obs bei dir an einer anderen Stelle hakt.

    Könntest du mal das php error reporting in den joomla optionen auf maximum und den debug modus anstellen.

    Und dann den Fehler-Screen nochmals posten. Dann schau ich mir das mal an.

  • Hallo zusammen,

    ich hänge mich mal hier dran. Ich habe (natürlich auf einer Entwicklungsseite) erstmal auf Joomgallery 3.6.0 geupdated ohne Probleme, dann auf PHP 8.0 gestellt. Die Gallery kann ich ansehen im Frontend und Backend das funktioniert soweit nur der Upload im Frontend nicht.

    Da erhalte ich folgenden Fehler auf der Seite für den Menüpunkt zum Bilder hochladen (JoomGallery » Upload-Formular: Standard-Layout) aber auch zum Kategorien erstellen:
    --------------

    The page you are looking for can't be found

    Error 500 - JHtmlJoomselect::categorylist not found.

    --------------------


    Debug Modus ist an / Fehler auf maximum

    • Offizieller Beitrag

    Hi,


    ich hänge mich mal hier dran...

    ich denke du solltest dafür einen eigenen Thema aufmachen. Dein Problem unterscheidet sich doch deutlich von dem anderen.


    Wenn ich dich richtig verstanden habe funktioniert der Upload im Backend problemlos.

    Um das Problem einzugrenzen probiere folgendes aus:

    - in der Joomla Konfiguration das "URL-Rewrite nutzen" ausschalten

    - Eine vorhandene .htaccess deaktiveren indem du sie umbenennst

    - Joomla-Cache und sonstige Caches ausschalten

    - Das Joomla Standard-Template protostar aktivieren

    und dann nochmal ausprobieren...


    Viele Grüße

    MrMusic