Author Topic: PHP 8 Fix für Liebhaber  (Read 7958 times)

0 Members and 1 Guest are viewing this topic.

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.808
  • I ♥ 4I
    • View Profile
PHP 8 Fix für Liebhaber
« on: August 05, 2021, 09:36:12 PM »
Grüßt euch,

wäre es eventuell möglich in Form einer Kulanz und auch liebe zum System, 4images wenigsten noch einmal vom Code ausgesehen, PHP 8 Ready zu machen?

Unter PHP 7.4 läuft es ohne Probleme, schaltet man auf PHP 8.0.* um, erhält man grundsätzlich nur eine weiße Seite. Keine Fehlermeldung, nichts steht in der php_error oder error Log.
Ich bin sehr gerne bereit einen Obolus dafür zu bezahlen, sodass auch andere den Fix nutzen können.
Ich wäre unfassbar dankbar.

Sowohl in der php.ini habe ich das versucht:
display_errors = on
display_startup_errors = on
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

In der index.php des Scripts beispielsweise:
error_reporting(E_ALL | E_STRICT);
ini_set('display_startup_errors',1);
ini_set('display_errors',1);

Ich habe mir ein Script heruntergeladen, um zu schauen, ob es bloß an irgendwelchen Funktionen liegt:
https://github.com/wapmorgan/PhpDeprecationDetector

phpdd ./ --target 8.0 oder phpdd -t 8.0 -a 7.4 ./ habe ich verwendet

Das Script sagt mir aber: Analyzer has not detected any issues in your code.

LG

Offline php8

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: PHP 8 Fix für Liebhaber
« Reply #1 on: August 10, 2021, 05:43:49 PM »
Hallo qBass17,

der Herausforderung wollte ich mich auch gerne stellen, habe dann aber durch die weiße Seite (die ein Error 500 ist) wieder sein gelassen. Letztlich hat mich dein Beitrag dazu animiert, es nochmal zu versuchen, und mit gefühlt endlosen Debugzeilen die Ursache näher einzugrenzen. Das hat mich ein paar ruhige Nachtstunden gekostet, aber hier sind nun meine Ergebnisse. Meine Erfahrungen sind leider etwas eingerostet, fühle dich frei, anhand meiner gesammelten Informationen tiefer zu schürfen. Leider kommt mein Beitrag nun auch einige Tage verspätet, ich musste mich hier erst dem Registrierungs- und Freischaltvorgang stellen, und hatte letztlich mehrfach Schwierigkeiten, mich im Forum überhaupt einzuloggen, weil meine Session direkt nach dem Login als Abgelaufen deklariert und ich wieder ausgeloggt wurde (das Verhalten kenne ich aber leider von anderen SimpleMachines Foren sehr gut, aber das ist eine andere Geschichte).

Datei: global.php

Eine Funktion im Code steht definitiv unter PHP 8 nicht mehr zur Verfügung:
PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc() in /global.php:61
Diese Funktion ist seit PHP 7.4.0 DEPRECATED (veraltet) und seit PHP 8.0.0 ENTFERNT.

Ersetze:
if (get_magic_quotes_gpc() == 0) {
  
$HTTP_GET_VARS    addslashes_array($HTTP_GET_VARS);
  
$HTTP_POST_VARS   addslashes_array($HTTP_POST_VARS);
  
$HTTP_COOKIE_VARS addslashes_array($HTTP_COOKIE_VARS);
}


durch:
  $HTTP_GET_VARS    addslashes_array($HTTP_GET_VARS);
  
$HTTP_POST_VARS   addslashes_array($HTTP_POST_VARS);
  
$HTTP_COOKIE_VARS addslashes_array($HTTP_COOKIE_VARS);


Finde und kommentiere aus (// vor die Zeile setzen):
include_once(ROOT_PATH.'includes/cache_utils.php');

Ergänze danach:
function create_cache_id() {
}
function 
get_cache_file() {
}
function 
save_cache_file() {
}


Finde und kommentiere aus (// vor die Zeile setzen):
include_once(ROOT_PATH.'includes/captcha_utils.php');

Voraussetzungen:
  • Captcha nicht im Einsatz bzw. in templates/<template-ordner>/header.html entfernt
  • Cache nicht im Einsatz (finde gerade leider nicht, in welcher Konfigurationsdatei/Einstellung das anzupassen ist, Default scheint hier meines Erachtens nach zu seinn, dass der Cache nicht genutzt wird)

Ausstehend - diese Warnings habe ich nicht behandelt:
  • PHP Warning:  Template::_compile_var(): Argument #1 ($matches) must be passed by reference, value given in [...]/includes/template.php on line 144
  • PHP Warning:  Template::_compile_condition_start(): Argument #1 ($matches) must be passed by reference, value given in [...]/includes/template.php on line 151
  • PHP Warning:  Template::_compile_condition_end(): Argument #1 ($matches) must be passed by reference, value given in [...]/includes/template.php on line 157
  • PHP Warning:  Undefined variable $categories in [...]/includes/functions.php on line 1223

Liebe Grüße.

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.808
  • I ♥ 4I
    • View Profile
Re: PHP 8 Fix für Liebhaber
« Reply #2 on: August 13, 2021, 01:31:57 PM »
Grüße,

danke für die Mühe, dass ist sehr spannend. Und es ist schön zu sehen, dass es noch ein gewisses Interesse besteht.

Ich liebe dieses System nach wie vor.

Ich denke die Entwickler werden diesen Beitrag berücksichtigen.

Ich werde auch weitermachen, sobald ein offizieller Patch erscheinen wird und mich weiter dem neuen Layout des Backend sowie Frontend widmen.

LG

Offline kp

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • www.hell-is-open.de
Re: PHP 8 Fix für Liebhaber
« Reply #3 on: August 24, 2021, 11:44:08 AM »
Hallo Zusammen,
habe einen Fix für PHP 8 erstellt, hierbei sind alle Funktionen ohne Einschränkungen wieder nutzbar.
Schaut bitte hier nach: https://www.4homepages.de/forum/index.php?topic=33111.msg168360#msg168360