WebsiteBaker Support (2.13.x) > General Help & Support

PHP 8.5

(1/2) > >>

ruebenwurzel:
Hallo,

mein Hoster bietet PHP 8.5 an. Habe mal testweise eine WB 2.13.9 r25 umgestellt: Das Fehelerprotokoll wirft folgendes aus:


--- Code: ---Sun, 25 Jan 2026 05:18:21 +0000 [E_DEPRECATED] /modules/form/view.php:[158] from /modules/droplets/droplets.php(43) : eval()'d code:[31] require "Non-canonical cast (double) is deprecated, use the (float) cast instead"
Sun, 25 Jan 2026 05:18:21 +0000 [E_DEPRECATED] /include/captcha/Securimage.php:[2714] from /vendor/composer/ClassLoader.php:[576] include "The backtick (`) operator is deprecated, use shell_exec() instead"
Sun, 25 Jan 2026 05:18:21 +0000 [E_DEPRECATED] /include/captcha/Securimage.php:[2979] from /vendor/composer/ClassLoader.php:[576] include "The backtick (`) operator is deprecated, use shell_exec() instead"
[25-Jan-2026 05:18:21 UTC] PHP Deprecated: Function imagedestroy() is deprecated since 8.5, as it has no effect since PHP 8.0 in /www/htdocs/v141252/matthias_gallas_de/include/captcha/Securimage.php on line 1988"
--- End code ---

Ist geplant WB 2.13 PHP 8.5 kompatibel zu machen, oder geschieht das erst mit der nächsten Version?

Schönen Sonntag wünscht

Matthias

sternchen8875:

--- Quote ---Ist geplant WB 2.13 PHP 8.5 kompatibel zu machen, oder geschieht das erst mit der nächsten Version?
--- End quote ---

Wenn du andere Ideen hast, wie man eine Änderung unter die Leute zaubert, immer ran damit. Ich persönlich halte wenig davon, jeden 2. Tag eine neue Version zu veröffentlichen, weil wieder irgendwas entdeckt wurde. Allerdings bin ich mit der Meinng auch recht einsam.
Wir haben zwar alle unsere Testumgebungen und Websites auf PHP 8.5 zu laufen, aber es kommt wohl auch immer auf den Anwendungsfall an. Darum ist man eben auch auf Input von außen angewiesen, sprich: vom Forum.

Zu deinen Meldungen

#1 beruht auf einem Fehler im Dropletcode, da mußt du selbst schauen, was wo wie genutzt wurde

zu #2 + #3
ersetze in genannter Datei include/captcha/Securimage.php 2x

--- Code: ---$data = `$sox_cmd`;
--- End code ---
mit

--- Code: ---$data = shell_exec($sox_cmd);
--- End code ---
(ist übrigens schon seit PHP 8.0 auf deprecated - da bist du also eher die Ausnahme mit der Meldung)

zu #4
imagedestroy() kann überall ersatzlos gelöscht werden, zieht sich quer durch Core und diverse Module

ruebenwurzel:
Hallo,

vielen Dank, secureimage.php hab ich gefixt. Meldung vom Form/Droplet ist nicht mehr aufgetaucht. Falls es nochmal kommt schau ich was das Problem sein könnte.

Auf einer anderen Domäne, die ich auf PHP 8.5 umgestellt habe habe ich folgende Errorlog Eintrag:


--- Code: ---Mon, 26 Jan 2026 04:01:16 +0000 [E_DEPRECATED] /admin/logout/index.php:[80] from /admin/logout/index.php:[80] bin\Exceptions\ErrorHandler::handler "Using null as an array offset is deprecated, use an empty string instead"
--- End code ---

Zwecks neuer Version. Ich geh da mit dir, weniger ist mehr. Nicht jedes kleine fitzelchen braucht ne neue Version. Die macht erst dann Sinn wenn grundlegend neues oder dringende Sicherheitslücken, die geschlossen werden müssen, es erfordern. Deprecated-Meldungen sehe ich erst mal nur als Hinweis ohne den Zwang sofort tätig werden zu müssen.

Matthias 

ruebenwurzel:
Hallo,

ChatGPT bietet folgendes an:

nach Zeile 59 einfügen:

--- Code: ---// PHP 8.5+: using null as an array offset is deprecated
    $oldId = is_string($oldId) ? $oldId : '';
--- End code ---

Zeile 80 (neu 82) ändern:

--- Code: ---if ($oldId !== '' && isset($_COOKIE[$oldId])) {
--- End code ---

Passt das? In der Anlage gefixte Datei

ruebenwurzel:
Hallo,

Deprecated Meldung im Form


--- Code: ---Mon, 26 Jan 2026 06:26:42 +0000 [E_DEPRECATED] /modules/form/view.php:[158] from /framework/frontend.functions.php:[286] require "Non-canonical cast (double) is deprecated, use the (float) cast instead""
--- End code ---

Lösungsvorschlag ChatGPT:

modules/form/view.php ab Zeile 155:

--- Code: --- function new_submission_id() {
     $submission_id = '';
     $salt = "abchefghjkmnpqrstuvwxyz0123456789";
-    \srand((double)microtime()*1000000);
-    $i = 0;
-    while ($i <= 7) {
-        $num = \rand() % 33;
-        $tmp = \substr($salt, $num, 1);
-        $submission_id = $submission_id . $tmp;
-        $i++;
-    }
+    for ($i = 0; $i < 8; $i++) {
+        $submission_id .= $salt[\random_int(0, \strlen($salt) - 1)];
+    }
     return $submission_id;
 }

--- End code ---

Kann man das so machen?

Navigation

[0] Message Index

[#] Next page

Go to full version