Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 5 Gast/Gäste
ProPortal 2.6.2
(05.10.2021, 11:09)Schnapsnase schrieb: @JAY

ich benutze in diesem Plugin einen sehr ähnlichen Code.
Zumindest sind die Querys fast identisch.
Wenn es wirklich an der Session-Tabelle liegt, müsste ja mein Plugin auch Probleme bereiten, tut es aber nicht. Wink

Es liegt aber daran. Ich hab es getestet. Ich habe den gesamten Code nicht analysiert, aber zumindest der o.g Code von mir hilft um das Problem zu umgehen. Dabei beziehe ich mich sogar nur indirekt auf die Session Tabelle.

Nach mehrmaligen probieren habe ich es durch 2 Anmeldungen (PC und Handy) geschafft 2 Einträge in der Sessions Tabelle zu erzeugen. Der neu angemeldete Benutzer sieht sich nun doppelt auf dem neuen Gerät.

Siehe Anhang:


Angehängte Dateien Thumbnail(s)
   
Zitieren
(05.10.2021, 11:13)itsmeJAY schrieb: Nach mehrmaligen probieren habe ich es durch 2 Anmeldungen (PC und Handy) geschafft 2 Einträge in der Sessions Tabelle zu erzeugen.

Dann bist du aber auch wirklich mit 2 Geräten gleichzeitig online.
Das ist aber m.M. nach nicht der Ausgangspunkt des Problems.
Der Fehler entsteht auch, wenn man wirklich nur mit einem Gerät arbeitet. Wie soll das dann passieren?
Zitieren
Könnte durch einen Fehler passieren oder eine abgelaufene Sitzung. Ich weiß es nicht zu 100 Prozent, aber Fakt ist, dass es nur dadurch passieren kann. Der Code bietet doch gar keinen anderen Spielraum.
Zitieren
Ich gebe dir ja insofern recht, dass im Code nichts auf dieses Problem hindeutet.
Warum habe ich dann aber mit meinem Plugin diese Probleme nicht?
Der Code in meinem Plugin ist nun wirklich nicht sehr viel anders. Wink
Zitieren
(05.10.2021, 11:03)itsmeJAY schrieb: Fügt zum Start der while-Schleife folgenden Code ein bzw. ergänzt die While-Schleife in der Datei portal/blocks/block_wwo24.php in Zeile 37 um folgenden Code:
PHP-Code:
        $onlineUsersArray[] = $onlineuser['uid'];
        $counted array_count_values($onlineUsersArray);

        if ($counted[$onlineuser['uid']] > 1) {
            continue;
        
Binde ich vorstehenden Code ein, wird eine weiße Seite angezeigt und im Log-File ein PHP-Fehler protokolliert.
PHP-Fehler:
Zitat:PHP Fatal error:  'continue' not in the 'loop' or 'switch' context in /www/htdocs/xxxxxxxx/portal/blocks/block_wwo24.php on line 42
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
(05.10.2021, 11:03)itsmeJAY schrieb: Fügt zum Start der while-Schleife
Zitieren
Dann schreib doch nicht "in Zeile 37" sondern:
Füge nach (ca. Zeile 40)
PHP-Code:
while($onlineuser $db->fetch_array($query)) 
diesen Absatz:
PHP-Code:
$onlineUsersArray[] = $onlineuser['uid'];
        $counted array_count_values($onlineUsersArray);

        if ($counted[$onlineuser['uid']] > 1) {
            continue;
        
ein. Somit findet sich ein jeder leichter zurecht weil etwaige Fehlinterpretationen im Vorfeld vermieden werden.

Jetzt heist es abwarten und Beobachten ob das Fehlverhalten nochmals aufgezeigt wird.

Die doppelten User sind dann nicht mehr gegeben = das gewünschte Ziel.

Die Ladezeit der Portalseite wurde erheblich erhöht. Vorher = 1 Sekunde, nachher = 27 Sekunden (bei lediglich 12 aufgeführten Usern). Vllt. findet sich dazu noch eine Lösung.

Besten Dank für Dein Engagement.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an!  ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools [Unixzeit ⇔ Realzeit] ♦ [BOM-Finder] ♦ [SQL-Prefix-Changer] ♦ [USV-Rechner] ♦ [PlugIns]
Zitieren
Hmm, dann muss ich scheinbar doch die Queries neu schreiben. Dachte ich komm da drum herum. :/
Zitieren
@ Gerti

Hallo Gerti,

falls du mein Plugin einsetzt, dann lade dir mal diese abgeänderte Plugin-Datei hoch:


.php   onlinetoday.php (Größe: 13,57 KB / Downloads: 3)

Damit solltest du eigentlich die Variable {$online_today} vom Plugin sowohl im Template "pro_portal", als auch in anderen Block-Templates verwenden können.
Diese Variable gibt es allerdings gleichnamig im ProPortal und in meinem Plugin. Daher musst du mal testen, wie sich das wo auswirkt.
Dafür hatte ich jetzt keine Zeit mehr.
Notfalls ändern wir das nochmal. Wink
Zitieren
(05.10.2021, 20:23)itsmeJAY schrieb: Hmm, dann muss ich scheinbar doch die Queries neu schreiben. Dachte ich komm da drum herum. :/

Sorry noch mal , ich habe den Code von dir so eingefügt 

PHP-Code:
$comma $onlinemembers '';
$membercount $guestcount $anoncount 0;
$doneusers $ips = array();
foreach(
$queries as $query)
{
     
$onlineUsersArray[] = $onlineuser['uid'];
        $counted array_count_values($onlineUsersArray);

        if ($counted[$onlineuser['uid']] > 1) {
            continue;
        
    while(
$onlineuser $db->fetch_array($query))
    {
        if(isset(
$onlineuser['sid'])){
            
$botkey strtolower(str_replace("bot="''$onlineuser['sid']));
        } 

das sind Zeile 32 - 40 bei mir 

und bei mir funktiniert es ohne Probleme

oder hab ich da was komplett falsch gemacht und geht nur durch zufall weiter?
Zitieren