WebsiteBaker Community Forum
WebsiteBaker Support (2.13.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: hillschmidt on April 02, 2024, 11:27:47 AM
-
croncheck.php in der Version 4 vom 16.01.2020 bringt folgenden Fehler:
PHP Warning: Undefined array key "SCRIPT_NAME" in /mnt/web220/b2/93/536293/htdocs/wb/framework/CoreAutoloader.php on line 96
PHP Warning: Undefined array key "SCRIPT_NAME" in /mnt/web220/b2/93/536293/htdocs/wb/framework/CoreAutoloader.php on line 141
There was an uncatched exception<br />
strtolower(): Argument #1 ($string) must be of type string, null given<br />
in line (60) of (/framework/HttpRequester.php):<br />
Hat da jemand eine Idee?
PHP 8.1 und WB 2.13.5 r220
-
Ich hänge mal meine croncheck.php als .zip hier an, die macht was sie soll.
Nur umbenennen, ist nicht gezipt!
Etwas hat sich auf https://domäne.tld geändert
Diese Dateien sind geändert: /var/log/php-error.log.php -> 2.4.2024 13:03
Das Skript lief für 0,311273097992 Sekunden
Habe dann aber folgenden Meldung im ErrorLog
Tue, 02 Apr 2024 11:10:23 +0000 [E_NOTICE] /croncheck.php:[133] from /croncheck.php:[133] md5_file "md5_file(): Read of 8192 bytes failed with errno=21 Is a directory"
Die Domäne läuft mit php8.3 und mit dem Patch r223
Nachtrag
Die zn 133 deaktivieren und der ErrorLog bleibt leer
//if($checkmd5) $md = md5_file($cf);
-
Leider bleibt der Fehler:
PHP Warning: Undefined array key "SCRIPT_NAME" in /mnt/web220/b2/93/536293/htdocs/wb/framework/CoreAutoloader.php on line 96
PHP Warning: Undefined array key "SCRIPT_NAME" in /mnt/web220/b2/93/536293/htdocs/wb/framework/CoreAutoloader.php on line 141
There was an uncatched exception<br />
strtolower(): Argument #1 ($string) must be of type string, null given<br />
in line (60) of (/framework/HttpRequester.php):<br />
-
deutsch von PHP.net
$_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen beinhaltet. Die Einträge in diesem Array werden vom Webserver erstellt, weshalb es keine Garantie dafür gibt, dass jeder Webserver alle diese Einträge unterstützt - Server können einige weglassen oder andere Einträge unterstützen, die hier nicht aufgeführt sind. Die meisten dieser Variablen werden jedoch in der » CGI/1.1-Spezifikation ausgewiesen und sind wahrscheinlich definiert.
engl. PHP.net
$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here.
------------------------------------
Es ist also kein Fehler in der Datei und auch nix verkehrtes, sondern nur so, das der Server diese Information nicht zur Verfügung stellt. Leicht zu kontrollieren durch solch Code in einer versteckten Code- bzw Code²-Section
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
Ergebnis ist eine lange Liste mit allen Array-Teilen, die der jeweilige Server zur Verfügung stellt. $_SERVER['SCRIPT_NAME'] sollte dann nicht Teil dieses Array's sein
Hatte ich auch mal eine Zeit lang, ich meine, das war bei Strato.
Nachtrag
Die zn 133 deaktivieren und der ErrorLog bleibt leer
//if($checkmd5) $md = md5_file($cf);
es ist ausreichend, den Check per md5 oben in den Dateieinstellungen der croncheck.php zu deaktivieren
$checkmd5 = true; // check aktiv
vs.
$checkmd5 = false; // check inaktiv
-
Danke, (Y) wie immer sehr lehrreich,
dann werde ich es mal wieder korrigieren.
-
Danke schon mal. Ich habe jetzt das kleine Script generiert - und siehe da: die Variable SCRIPT_NAME wird für dieses Script vom Server hergegeben:
[SCRIPT_NAME] => /wb/check_vars.php
An CoreAutoloader und HttpRequester im frameweork traue ich mich nicht ran ... beide Version 0.0.1 - mache ich da was bei den Updates falsch? Denn dort kommen ja die Meldungen her, die ich weiterhin habe ...
-
zu den Fehlermeldungen: ich kann nur "übersetzen", was dort steht
und da ist einmal SCRIPT_NAME leer (Zeile 1 + 2 der Fehlermeldungen) und in den letzten die REQUEST_METHOD (ist leer - null given)
Für mehr fehlt mir leider das Wissen. Aber ganz allgemein... die croncheck.php läuft ja schon seit einigen Jahren in dieser Form fehlerfrei und CoreAutoloader und HttpRequester sind ja in ihrer Form auch schon ein paar Jahre dabei, darum tippe ich aus der Ferne eher auf etwas Spezifisches, das nur bei dir Probleme macht.
Vielleicht können unsere Entwickler mal aufklären
-
Nachdem ich nun zwei Fehler in der framework-Datei CoreAutoloader.php durch Ändern des Parameternamens auf SCRIPT_FILENAME eliminieren konnte ... bleibt dieser Fehler:
There was an uncatched exception<br />
strtolower(): Argument #1 ($string) must be of type string, null given<br />
in line (66) of (/framework/HttpRequester.php):<br />
Ideen?
Ich fummele eigentlich nicht in WB Basisdateien rum ... aber was soll ich sagen - in Verbindung mit dem croncheck.php läuft unter PHP 8.2 irgendwas nicht rund ... ratlos.