Ticket #206 (closed Fehlermeldung: fixed)

Opened 3 years ago

Last modified 3 years ago

Funktion blog() funktioniert nicht mehr (MySQL datetime vs. date())

Reported by: robertb Owned by: robertb
Priority: blocker Milestone: Jlog 1.1.3
Component: Kernfunktion Version: 1.1.2
Keywords: blog,MySQL,datetime,date Cc:

Description

Mir ist vor Kurzem aufgefallen, dass zwei auf Jlog 1.1.2 umgestellte Blogs plötzlich keine korrekten Pings absetzten: „error 404“ und die URL begann mit /1970/01. Also habe ich angefangen zu recherchieren und herausgefunden, dass die Funktion blog() in source:trunk/scripts/general.func.php im Parameter $date einen Unix-Timestamp erwartet, source:trunk/admin/new.php sendet allerdings einen MySQL datetime Wert, den die PHP-Funktion date() in blog() als „Stunde Null“ interpretiert. Weitere Nachforschungen über die Verwendung von blog() scheinen nötig zu sein.

Meine Vermutung ist ja, dass da beim Umstellen das Datumsfeldes in der Datenbank vergessen wurde, die Funktion oder diesen Aufruf anzupassen. Ich werde jedenfalls den Quellcode danach durchsuchen. Und in Zukunft sollten wir vielleicht die Releases besser testen bevor wir sie veröffentlichen ;-)

Change History

comment:1 Changed 3 years ago by robertb

  • Owner set to robertb
  • Status changed from new to assigned

Problem im SVN gelöst: Der MySQL-Request in der Funktion get_blog(), zu finden in source:trunk/admin/blog.func.php, war noch nicht an Jlog 1.1 angepasst. Mit der zusätzlichen Klausel

UNIX_TIMESTAMP(date) AS date

ließ sich der Fehler beheben; für Details siehe changeset:1773/trunk/admin/blog.func.php Das scheint aber auch das einzige Relikt aus früheren Zeiten gewesen zu sein.

comment:2 follow-up: ↓ 3 Changed 3 years ago by driehle

Hm… SELECT * ist  ja schon unschön, aber SELECT *, xyz finde ich noch schlimmer ;-)

Vielleicht könntest du an der Stelle gerade noch die benötigten Datenbankspalten auflisten, wenn du schon dabei bist.

comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 3 years ago by robertb

Replying to driehle:

Hm… SELECT * ist  ja schon unschön, aber SELECT *, xyz finde ich noch schlimmer ;-)

Vielleicht könntest du an der Stelle gerade noch die benötigten Datenbankspalten auflisten, wenn du schon dabei bist.

Dann werde ich mal durch den kompletten Quellcode gehen (müssen), weil SELECT *, xyz doch des öfteren vorkommt.

comment:4 in reply to: ↑ 3 Changed 3 years ago by robertb

Replying to robertb:

Mit 1775 behoben.

comment:5 follow-up: ↓ 6 Changed 3 years ago by driehle

Hm, ist das alles? Scheint mir auf den ersten Blick etwas wenig zu sein *g* Auch bei INSERT INTO sollte man (aus denselben Gründen) die Spaltennamen angeben.

comment:6 in reply to: ↑ 5 Changed 3 years ago by robertb

Replying to driehle:

Hm, ist das alles?

Du hast Recht, ein paar waren gut versteckt: 1777

Auch bei INSERT INTO sollte man (aus denselben Gründen) die Spaltennamen angeben.

Das ist doch überall geschehen, oder?

comment:7 Changed 3 years ago by driehle

  • Status changed from assigned to closed
  • Resolution set to fixed

Jep, ich denke jetzt dürfte das passen so.

comment:8 Changed 3 years ago by driehle

  • Milestone set to Jlog 1.1.3
Note: See TracTickets for help on using tickets.