Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Thread-Views zählen nicht hoch unter PHP8
#1
Ich habe ein neues Forum unter PHP 8.1 und MySQL 8 aufgesetzt

soweit alles ok, aber heute ist mir aufgefallen, dass die Views bei den Themen auf 0 stehen, obwohl man an den Antworten sieht, dass schon eine Menge Views dafür produziert worden sein müssen.

Nach Umstellung auf PHP 7.4 zählen die Themenaufrufe sofort und der Counter bewegt sich.
Ich nutze also die sofortige Zählfunktion, nicht die taskgesteuerte (hatte ich auch probiert, ohne Erfolg). Aufrufe des Themenstarters und aller anderen sollen auch gezählt werden laut Einstellung im ACP. Theoretisch sollte also jeder Aufruf egal von wem auch ziehen, aber es zieht keiner.

So kompliziert kann die Funktion ja nun eigentlich nicht sein, dass sie unter einer höheren PHP-Version zu Aussetzern führt. Dachte ich zumindest. Bei Aufruf der showthread.php kurz einen Eintrag in der Datenbank mit views+1, fertig

Wo hakelt das mit PHP 8.0 bzw. PHP 8.1 (beide getestet)

jemand eine Idee?

Ich würde das Forum schon gerne unter PHP 8 laufen lassen (weil es wahnsinnig Spaß macht die Plugins dann nachzubessern, die nicht gepflegt werden  Rolleyes )

Einen Link kann ich euch nicht bieten, da das Forum hinter einem htaccess-Passwortschutz liegt

installierte Plugins:
DVZ Shoutbox 2.3.4
Jump to top 1.1 (installiert nach Bemerken des Fehlers)
My Arcade 1.4
MyBB FancyBox 1.1.2 (installiert nach Bemerken des Fehlers)
OUGC Custom Language 1.8
ProPortal BenutzerCP-Einstellungen + natürlich dazu ProPortal 2.6.2

ich sehe da nichts, was in die Threadanzeige eingreifen könnte und wenn, dann sollte es doch auch unter PHP 7.4 störend eingreifen

danke für eure Zeit
Lu
Zitieren
#2
Wie verhält es sich, wenn die ganzen Plugins deaktiviert werden?
Natürlich könnte auch ein nicht-PHP8-kampatibles Plugin zu diesem Problem führen.

Die Option $mybb->settings['delayedthreadviews'] ist defintiv nicht aktiviert?

[ETS]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren
#3
(08.09.2022, 01:13)[ExiTuS] schrieb: Wie verhält es sich, wenn die ganzen Plugins deaktiviert werden?
Natürlich könnte auch ein nicht-PHP8-kampatibles Plugin zu diesem Problem führen.
gerade noch mal alle deaktiviert, kein Unterschied, in PHP8 erfolgt keine Zählung

(08.09.2022, 01:13)[ExiTuS] schrieb: Die Option $mybb->settings['delayedthreadviews'] ist defintiv nicht aktiviert?

[ETS]
absolut definitiv, da ich sie testweise an hatte und es auch dann nicht funktionierte, weiß ich genau, dass die andere an ist, da es ja in php7.4 sofort gezählt wird

Hab mir das mal angeschaut in der showthread.php

Vielleicht ein Problem mit shutdown_query ?

edit: Treffer versenkt!
Ich habe aus der shutdown_query testweise mal eine write_query gemacht und schon läuft die Zählung auch unter PHP 8.1

$db->shutdown_query
Runs a query thats performed when PHP is done parsing the file.

Was für ein Problem hat die shutdown_query mit PHP8?
Zitieren
#4
shutdown_query() sammelt quasi alle SQL-Statements in einem Array und führt sie am Ende des Scripts mittels Schleife aus.
Ich kann spontan in der ganzen Kaskade an Funktionen/Variablen nichts auffälliges finden, warum dies nicht funktionieren sollte.

Hast du einen Blick ins aktivierte Debug geworfen, ob und welche Queries tatsächlich abgesetzt werden?

[ETS]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren
#5
ja, hab ich mir gerade mal angeschaut

mit original showthread.php habe ich folgende write-queries
UPDATE mybb_sessions
REPLACE INTO mybb_threadsread

die folgender Query erfolgt aber nur, wenn ich auf write_query umschalte
UPDATE mybb_threads SET views=views+1 WHERE tid='10'

weitere Datenbankzugriffe sind alle select

shutdown_query wird in der showthread.php nur für die views verwendet, entweder als direkte Hochzählung oder als Eintrag in die xyz_threadviews Tabelle für den folgenden Taskdurchlauf

Was soll also noch weiter im shutdown gesammelt werden?
Zitieren
#6
(08.09.2022, 10:32)bv64 schrieb: die folgender Query erfolgt aber nur, wenn ich auf write_query umschalte
UPDATE mybb_threads SET views=views+1 WHERE tid='10'
Woran siehst du das? Die Shutdown-Abfragen werden erst ausgeführt, wenn die Seite bereits vollständig an den Browser gesendet ist.
(08.09.2022, 10:32)bv64 schrieb: Was soll also noch weiter im shutdown gesammelt werden?
Es werden diverse Informationen per shutdown-Query aktualisiert, unter anderem Sessions und die Information, dass ein Thema oder Forum gelesen wurde.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
weil ich es einmal mit shutdown_query und einmal mit write_query getestet habe und jeweils im Debug mir die Seite angeschaut habe Wink

tja, keine Ahnung in wieweit die anderen gesammelten Sachen dann ausgeführt werden
bin aktuell wieder auf PHP 7.4 zurück, kein Nerv dafür
Zitieren
#8
(10.09.2022, 13:41)bv64 schrieb: weil ich es einmal mit shutdown_query und einmal mit write_query getestet habe und jeweils im Debug mir die Seite angeschaut habe Wink
Wie eben schon geschrieben: Die Seite ist bei der Ausführung der Abfrage schon an den Browser gesendet und wird quasi im Hintergrund abgearbeitet. Du kannst das nicht auf der Debug-Seite sehen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
ja, aber wenn es irgendwann ausgeführt würde, müssten die Views doch dann hoch zählen

was definitiv unter PHP8 nicht geschah, keine Ahnung warum
Zitieren
#10
(10.09.2022, 13:36)StefanT schrieb: Es werden diverse Informationen per shutdown-Query aktualisiert, unter anderem Sessions und die Information, dass ein Thema oder Forum gelesen wurde.

Lieber Stefan,
genau all diese Funktionen klappen seit meiner heutigen Aktualisierung auf PHP8 in meinem MyBB nicht mehr:

-- Foren behalten fälschlicherweise ihre "Neu"-Fahne, obwohl gelesen
-- Threadviews zählen nicht hoch
-- Gesamtbeitragszähler des Forums zählt nicht hoch

Habe auch dazu hier einen Bug-Report hinterlassen. Gibt's dazu schon weitere Informationen für diejenigen von uns, die nicht auf PHP 7.4 zurückgehen können?

Liebe Grüße!
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Fehlermeldung nach Umstellung auf PHP8.0 Dominic82 1 924 20.04.2023, 16:31
Letzter Beitrag: StefanT
  PHP8.1.13 > Fehlermeldung bei Aufruf eines Online-Users Gerti 11 1.253 22.02.2023, 17:46
Letzter Beitrag: SvePu
  Beitrag Views werden nicht hochgezählt Saint 12 2.369 08.11.2022, 19:37
Letzter Beitrag: UweJ
  Thread Views nur bei reg. Usern hochzählen KH1990 4 1.736 28.01.2019, 15:52
Letzter Beitrag: KH1990
  SQL Query time extrem hoch (Select Query) Assassin286 7 1.883 07.06.2018, 20:29
Letzter Beitrag: Assassin286