forum.coppermine-gallery.net

Support => Deutsch (German) => Language Specific Support => cpg1.6.x Deutsch (German) => Topic started by: Radioven on January 02, 2021, 12:31:30 pm

Title: CPG 1.6.09 und PHP 8.0.0
Post by: Radioven on January 02, 2021, 12:31:30 pm
Hallo zusammen !

Ich habe kurz vor dem Jahreswechsel auf meinem Rechner testweise die neueste XAMPP-Version mit PHP 8 installiert. Nach Aufruf der Coppermine Gallery 1.6.09 und erfolgtem Login erscheint unterhalb der aufgelisteten Alben folgende Fehlermeldung:

Quote
Fatal error: Uncaught TypeError: array_keys(): Argument #1 ($array) must be of type array, null given in F:\xampp\htdocs\cpg\include\functions.inc.php:968 Stack trace: #0 F:\xampp\htdocs\cpg\include\functions.inc.php(968): array_keys(NULL) #1 F:\xampp\htdocs\cpg\themes\dark_velvet\theme.php(4233): template_eval('<div id="vanity...', NULL) #2 F:\xampp\htdocs\cpg\themes\dark_velvet\theme.php(1651): theme_vanity() #3 F:\xampp\htdocs\cpg\index.php(1196): pagefooter() #4 {main} thrown in F:\xampp\htdocs\cpg\include\functions.inc.php on line 968

Betroffen sind demnach die Dateien \index.php, \include\functions.inc.php und \themes\dark_velvet\theme.php.
Die zuletzt genannte Datei wurde zwar nach meinen persönlichen Vorstellungen angepaßt, funktionierte so aber jahrelang bis einschließlich PHP 7.4.13. Kann es sein, daß unter PHP 8 ein weiteres Update nötig ist? Ähnliche Probleme gibt es nämlich auch bei anderen Scripten unter der neuen PHP-Version.

Viele Grüße
Radioven
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: ron4mac on January 02, 2021, 09:45:10 pm
Replace the function in include/functions.inc.php
Code: [Select]
function template_eval($template, $vars)
{
    if (!is_array($vars)) return $template;
    return str_replace(array_keys($vars), array_values($vars), $template);
}
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: Radioven on January 03, 2021, 11:22:36 am
Hat funktioniert, vielen Dank !

Gruß
Radioven
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: Radioven on January 08, 2021, 06:18:32 pm
Habe heute noch einmal ausgiebig getestet und folgendes festgestellt:
Die Login-Seite läßt sich aufrufen und man kann sich als Administrator anmelden. Anschließend werden auch alle Alben korrekt angezeigt. Rufe ich aber die Galerie ohne Anmeldung direkt auf, erscheint ein Error 500 bzw. lokal unter XAMPP eine leere weiße Seite.
Getestet habe ich die CPG-Version 1.6.09 mit der Änderung in der Datei include/functions.inc.php vom 02.01.2021. Verwendet wurden die Themes curve, eyeball, rainy_day und water_drop. Überall das gleiche Resultat. Nach Rücksetzung auf PHP 7.4.13 funktionierte alles wieder einwandfrei.

Woran könnte das liegen?

Gruß
Radioven
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: ron4mac on January 09, 2021, 01:50:03 am
CPG has not yet been prepared for PHP 8.
But try ...

file include/functions.inc.php ; about line 3092, replace:
Code: [Select]
    if (count($pic_data) > 0) {with:
Code: [Select]
    if (is_array($pic_data) && $pic_data) {
and file index.php ; about line 908, replace:
Code: [Select]
    if (MODERATOR_MODE && in_array($aid, $USER_DATA['allowed_albums'])) {with:
Code: [Select]
    if (defined('MODERATOR_MODE') && MODERATOR_MODE && in_array($aid, $USER_DATA['allowed_albums'])) {
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: Radioven on January 09, 2021, 03:29:29 pm
Auch diese Änderungen haben Erfolg gezeigt, aber sicher sind noch einige andere Änderungen notwendig. Ich habe bei der Neuinstallation folgendes bemerkt:

Datei install.php ; Zeile 2032
Code: [Select]

@imagedestroy($source_a);
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: Radioven on January 09, 2021, 03:36:30 pm
Auch diese Änderungen haben Erfolg gezeigt, aber sicher sind noch einige andere Korrekturen notwendig. Ich habe bei der Neuinstallation folgendes bemerkt:

Datei install.php ; Zeile 2032

Code: [Select]

   @imagedestroy($source_a);
 

ersetzen durch

Code: [Select]

   unset($source_a);
 

Warten wir also auf die neue CPG-Version !


Radioven
Title: Re: CPG 1.6.09 und PHP 8.0.0
Post by: Radioven on January 09, 2021, 03:43:23 pm
siehe nächster Post  ;)