CPG 1.6.09 und PHP 8.0.0 CPG 1.6.09 und PHP 8.0.0
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

CPG 1.6.09 und PHP 8.0.0

Started by Radioven, January 02, 2021, 12:31:30 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Radioven

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:

QuoteFatal 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

ron4mac

Replace the function in include/functions.inc.php
function template_eval($template, $vars)
{
    if (!is_array($vars)) return $template;
    return str_replace(array_keys($vars), array_values($vars), $template);
}

Radioven

Hat funktioniert, vielen Dank !

Gruß
Radioven

Radioven

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

ron4mac

#4
CPG has not yet been prepared for PHP 8.
But try ...

file include/functions.inc.php ; about line 3092, replace:
    if (count($pic_data) > 0) {
with:
    if (is_array($pic_data) && $pic_data) {

and file index.php ; about line 908, replace:
    if (MODERATOR_MODE && in_array($aid, $USER_DATA['allowed_albums'])) {
with:
    if (defined('MODERATOR_MODE') && MODERATOR_MODE && in_array($aid, $USER_DATA['allowed_albums'])) {


Radioven

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

@imagedestroy($source_a);

Radioven

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


   @imagedestroy($source_a);



ersetzen durch


   unset($source_a);



Warten wir also auf die neue CPG-Version !


Radioven

Radioven