Zur Navigation

Datenbankfehler?

1 Tobi

Hallo,

ich kann in einem älteren Thema in einem Forum keinen Eintrag mehr machen: https://everca.de/modul-03-data-east-collection-1-t-4-1

Nach einem Klick auf "Antworten" kommt folgender Hinweis:

"Aufrund eines Datenbankfehlers konnte der Beitrag nicht eingetragen werden."

Neben dem fehlenden "g" lächel weiß ich nicht woran es liegen könnte?

Bei anderen Themen funktioniert das Antworten auf ein Thema.

Ich habe extra noch ein altes Thema ausgegraben, bei diesem funktioniert das Antworten: https://everca.de/modul-17-indie-heroes-collection-1-t-18-1#p9

05.02.2025 18:37

2 Jörg Kruse

Enthält der Beitrag irgendwelche speziellen Sonderzeichen?

Mit folgendem Eintrag in der Datei /includes/config.php kannst du den Debug-Modus einschalten:

define('B_DEBUG', true);

Wird dann beim Antworten irgendwo auf der Seite noch eine detailliertere Fehlermeldung ausgegeben?

Der Debug-Modus sollte anschließend wieder gelöscht oder auskommentiert werden, da er auch Angreifern weitergehende Informationen verraten kann.

Manchmal verursachen korrupte Daten in der Datenbank solche Fehler. Hier kann es ggf. helfen, die Datenbank-Tabellen zu optimieren. Dies wird auch automatisch beim Leeren des Papierkorbs im Adminbereich erledigt.

05.02.2025 20:47 | geändert: 05.02.2025 20:48

1 Forenmitglied fand diesen Beitrag gut

3 Tobi

Ah, da ist der Fehler:

MySQL Error: mysqli_sql_exception: Out of range value for column 'elapsedmonths' at row 1 in /includes/class/db.php:32
Stack trace:
#0 /includes/class/db.php(32): mysqli->real_query('INSERT INTO jkf...')
#1 /includes/main/post/new.php(109): DB->query('INSERT INTO jkf...')
#2 /includes/main/load.php(84): require('/...')
#3 /index.php(4): require('/...')
#4 {main}

05.02.2025 21:08

4 Jörg Kruse

OK, dieser Fehler tritt anscheinend unter ganz bestimmten Datumskonstellationen auf hmmm

Testweise sollte der Eintrag funktionieren, wenn folgender Abschnitt in der Datei /includes/main/post/new.php ...:

                            if ($i_elapsedmonths < 0) {
                                $i_elapsedmonths += 12;
                                $i_elapsedyears -= 1;
                            }
                            if ($i_prevpday > $i_pday) {
                                $i_elapsedmonths -= 1;
                            }

... geändert wird in:

                            if ($i_prevpday > $i_pday) {
                                $i_elapsedmonths -= 1;
                            }
                            if ($i_elapsedmonths < 0) {
                                $i_elapsedmonths += 12;
                                $i_elapsedyears -= 1;
                            }

Ich werde mir das ganze morgen auch nochmal genauer anschauen...

05.02.2025 22:12

1 Forenmitglied fand diesen Beitrag gut

5 Tobi

Vielen Dank!

Funktioniert damit auf jeden Fall erst einmal wieder lächel

05.02.2025 22:16

Nur Mitglieder können in diesem Forum Antworten schreiben.

Login | Registrieren