it-m-h / SmallTime

Small Time
GNU Affero General Public License v3.0
42 stars 32 forks source link

Probleme mit PHP 8.0 #68

Closed DKeppi closed 2 years ago

DKeppi commented 2 years ago

Hallo,

Synology hat endlich PHP 8.0 released - leider klappt Smalltime damit nicht

Habe auch schon eine komplette Neuinstallation versucht, bekomme immer HTTP ERROR 500 und eine leere Seite. Zum Login komme ich noch, aber danach ist es vorbei.

Chrome und Edge melden in den Entwicklertools nur " (Index):6772 crbug/1173575, non-JS module files deprecated."

waja commented 2 years ago

Kann ich (auch für PHP 8.1) bestätigen. Falls hier Logs oder eine Demoumgebung gebraucht werden, gern melden. Ich kann schnell einen vHost mit Master irgendwohin werfen.

it-m-h commented 2 years ago

Hi, leider habe ich keine Synology mit php8. Aber was kommt, wenn man Debugging einschaltet (also Fehlermeldungen anzeigen lässt) admin.php -> Zeile35 : define('DEBUG', true); Dann sollten die Fehlermeldungen erscheinen.

Ev. liegts auch an einer fehlenden Erweiterung? (zip oder xml)

DKeppi commented 2 years ago

Hi

Danke für die Info bzgl. DEBUG, das kannte ich gar nicht!

Nach dem Admin Login kommt:

Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /volume1/web/smalltime/include/class_month.php on line 75 TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /volume1/web/smalltime/include/class_month.php on line 75 Call Stack: 0.0015 544616 1. {main}() /volume1/web/smalltime/admin.php:0 0.0754 1638792 2. time_month->__construct($SettingCountry = '3', $lastday = 31, $ordnerpfad = 'administrator', $jahr = '2022', $monat = '8', $arbeitstage = [0 => '0', 1 => '1', 2 => '1', 3 => '1', 4 => '1', 5 => '1', 6 => '0\r\n'], $ufeiertag = [0 => '1', 1 => '1', 2 => '0', 3 => '0', 4 => '1', 5 => '0', 6 => '1', 7 => '1', 8 => '1', 9 => '1', 10 => '1', 11 => '1', 12 => '1', 13 => '1', 14 => '0', 15 => '0', 16 => '0', 17 => '0', 18 => '0', 19 => '0', 20 => '1', 21 => '1', 22 => '1', 23 => '0\r\n'], $_SollProTag = 8, $_startzeit = '4070905200\r\n', $arbeitszeit = '', $autopause = '', $absenzberechnung = '1', $absenzberechnungArbeitszeit = '1') /volume1/web/smalltime/admin.php:650 0.0768 1649144 3. time_month->absenzsetting() /volume1/web/smalltime/include/class_month.php:63

it-m-h commented 2 years ago

Kann es sein, dass Du eine ältere Version benutzt? Denn ich dachte die Fehler (welche mit php 8 kommen) habe ich gefixt. Früher war der Fehler in der Datei auf Zeile 75. Dann habe ich das gefixt if (is_array($this->_absenz->_array)) {..... Ist glaub jetzt auf Zeile 85 in der Datei, weil noch mehr geändert werden musste.

Mit der neusten Variante hoffe ich klappt es.

DKeppi commented 2 years ago

Hatte tatsächlich noch eine alte class_month.php und index.php Der Tipp mit dem Debug ist GOLD wert.

Durch Änderung der Zeile 184 in meiner user04_year.php in
<td class=td_background_tag align = left>" . $anzeige[$year]['Monat'][$month] . "</td> wurde dann auch die Jahresübersicht korrekt angezeigt.

PDF Drucken wirft noch Fehler, aber das bekomme ich auch noch hin!

it-m-h commented 2 years ago

DEBUG verhindert bei SmallTime ja nur die Ausgabe von Fehlermeldungen.

define('DEBUG', false); if (DEBUG == true) { error_reporting(E_ALL); //error_reporting(E_ALL ^ E_NOTICE); ini_set("display_errors", 1); } else { error_reporting(0); ini_set("display_errors", 0); }

DKeppi commented 2 years ago

hab dann noch die fpdf.php ausgetauscht und das wars dann auch :)