[phpBB3.2]Forum und blueimp AJAX Chat

Du hast Probleme beim Installieren oder bei der Benutzung einer Extension? In diesem Forum bist du richtig.
Forumsregeln
Bei Fragen zu einer bestimmten Extension sind Extension-Name und die Downloadquelle der Extension erforderlich. Letztere in Form der URL zum Download.
eumelchen
Mitglied
Beiträge: 701
Registriert: 09.02.2008 08:28
Wohnort: Gottin

[phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von eumelchen »

Hallo zusammen,

ich weiß nicht ob ich hier richtig bin, wenn nicht, bitte verschieben.
Es gibt ja von blueimp die Chat-Version 0.8.8 die auch mit phpBB3.1.x funktioniert und die habe ich bei meinem aktiven Forum mit phpBB3.1 auch im Einsatz. Funktioniert einwandfrei.
Ich hatte einen Vorschlag gefunden um die Chat-Logs abzuspeichern, dafür musste im Chat-Ordner ein Verzeichnis "log" erstellt werden mit 777 Rechten.
In der Datei AJAXChat.php musste die funktion purgeLogs mit dem nachfolgenden Code ersetzt werden. Auch das funktioniert bei 3.1 einwandfrei.

Code: Alles auswählen

    function purgeLogs() {

    if ($purgeDelay < (time() - 3600) || !isset($purgeDelay)) {

    // SQL Query to select messages for purge:
    $sql = 'SELECT
    userName,
    channel AS channelID,
    UNIX_TIMESTAMP(dateTime) AS timeStamp,
    text
    FROM
    '.$this->getDataBaseTable('messages').'
    WHERE
    dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' HOUR)
    ORDER BY
    id;';

    $result = $this->db->sqlQuery($sql);

    // Stop if an error occurs:
    if($result->error()) {
    echo $result->getError();
    die();
    }

    // Store result for logging:
    $logMsg = '';
    while($row = $result->fetch()) {
    $privmsg = ereg('/privmsg', $row['text']);
    if ($privmsg == false) {
    $logMsg .= '('.date('r', $row['timeStamp']).') ';
    $logMsg .= $this->decodeSpecialChars($row['userName']).': ';
    $logMsg .= $this->decodeSpecialChars($row['text'])."\n";
    }
    }
    $result->free();

    // Files are rotated every week, labelled by week number, month, and year.
    // File container where all messages are logged:
    $fileContainer = AJAX_CHAT_PATH.'log/'.date("WMY").'.log';
    $fileDirectory = AJAX_CHAT_PATH.'log/';

    // Check to make sure directory is writable:
    if(is_writable($fileDirectory)) {
    // Open the said file:
    $filePointer = fopen($fileContainer,"a");

    // Write log messages to file:
    fputs($filePointer,$logMsg);

    // Close the open said file after writing:
    fclose($filePointer);

    // Delete what has been archived:
    $sql = 'DELETE FROM
    '.$this->getDataBaseTable('messages').'
    WHERE
    dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' HOUR);';

    // Create a new SQL query:
    $result = $this->db->sqlQuery($sql);

    // Stop if an error occurs:
    if($result->error()) {
    echo $result->getError();
    die();
    }
    }

    $purgeDelay = time();
    }
    }
 
Bei meinen Versuchen mit dem Chat und phpBB3.2 und PHP 7 habe ich jetzt festgestellt das es Probleme gibt. Wenn ich diese Änderung auch dort in der AJAXChat.php vornehme, dann muss man 2 mal den Chat über meinForum.de/chat aufrufen damit der Chat einmal erscheint, einmal erscheint nur eine weiße Seite und beim nächsten Mal erscheint dann der Chat.
und die Speicherung funktioniert auch nicht.
Sobald ich wieder die Orginal AJAXChat.php einsetze funktioniert der Chat wieder normal, natürlich ohne Speicherung der Logs.

Hat Jemand vieleicht eine Idee was ich da ändern müsste?
Mein Englisch reicht leider nicht aus um mein Problem bei blueimp zu posten. Sorry.
Verschoben von Support-Forum nach Extension Support am 12.02.2017 14:01 durch Kirk

cpg
Mitglied
Beiträge: 532
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von cpg »

Moin,

ich meine, dass die Zeitdauer der Speicherung hier eingestellt wird:

if ($purgeDelay < (time() - 3600) || !isset($purgeDelay)) {

Extra Ordner habe ich nicht eingerichtet.

Besonders lange sollten die Chatbeiträge nicht aufgehoben werden, denke ich. Es reicht wohl, wenn das 1...2 Tage sind.
Falls sich jemand meldet und sich über "ungebührliches Verhalten" anderer TeilnehmerInnen beschwert, dann kann man noch einmal schauen.

Gruß
CPG
eumelchen
Mitglied
Beiträge: 701
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von eumelchen »

Mein Problem ist ja das es bei phpBB 3.2 nicht funktioniert.

Bei 3.1 wird für jede Kalenderwoche eine Textdatei mit den jeweilgen Logs gespeichert,

Da sieht es im Ordner log so aus:
04Jan2017.log
05Feb2017.log
06Feb2017.log
cpg
Mitglied
Beiträge: 532
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von cpg »

Moin,

ich greife auf die Logs direkt über den Chat zu (wenn es dann mal sein soll/muss):

http://www.dein-forum.de/phpBB3/chat/?view=logs

Dann kann ich Datum und Uhrzeit auswählen. Das Styling ist zwar etwas "verschoben"; aber das kann geändert werden.

Gruß
CPG
eumelchen
Mitglied
Beiträge: 701
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von eumelchen »

Danke, cpg, das ist mir bekannt.

Bei "meiner" Methode werden die Tabellen in der Datenbank aber immer geleert wenn die Daten in eine Log-Datei geschrieben wurden und ich kann die Daten lokal auf meinem Rechner archivieren und muss den Server nicht damit "belasten".

Ich möchte ansich nur wissen warum das bei phpBB 3.2 mit PHP 7 nicht funktioniert und was ich ändern muss damit es funktioniert.
cpg
Mitglied
Beiträge: 532
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von cpg »

Moin,

mit dem (längeren) Speichern solcher Dateien wäre ich äußerst vorsichtig. Ich denke, die dürfen nicht länger gespeichert werden als es für Mod/Admin-
Aufgaben unbedingt notwendig ist.

$purgeDelay gibt an, wann die Daten gelöscht werden.

Gruß
CPG
Zuletzt geändert von cpg am 13.02.2017 10:18, insgesamt 1-mal geändert.
eumelchen
Mitglied
Beiträge: 701
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von eumelchen »

Werden denn auf dem Server die Daten automatisch gelöscht? Ich glaube nicht.
Dann müsste ich ja zwischendurch immer mal wieder die entsprechende Tabelle in der Datenbank manuell leeren, oder?
cpg
Mitglied
Beiträge: 532
Registriert: 24.11.2007 12:43
Kontaktdaten:

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von cpg »

Davon gehe ich aus:

// Delete what has been archived:
$sql = 'DELETE FROM
'.$this->getDataBaseTable('messages').'
WHERE
dateTime < DATE_SUB(NOW(), interval '.$this->getConfig('logsPurgeTimeDiff').' HOUR);';
eumelchen
Mitglied
Beiträge: 701
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von eumelchen »

Das würde bei "meiner" Methode automatisch gehen und wenn ich etwas löschen möchte brauche ich nur per FTP die entsprechenden Files im Ordner log löschen.

Aber Du merkst wahrscheinlich, ich hänge sehr an meiner Methode, wahrscheinlich weil ich sie schon jahrelang verwende.

LG
eumelchen
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: [phpBB3.2]Forum und blueimp AJAX Chat

Beitrag von Mahony »

Hallo eumelchen
eumelchen hat geschrieben:einmal erscheint nur eine weiße Seite und beim nächsten Mal erscheint dann der Chat.
und die Speicherung funktioniert auch nicht....
Hat Jemand vieleicht eine Idee was ich da ändern müsste?
Ich würde ja mal ins Errorlog schauen, was da steht. Dann kann man nämlich auch an einer Lösung des Problems arbeiten.
Dass da eine weiße Seite kommt, liegt nämlich daran dass die Fehlermeldungen nicht ausgegeben werden sondern ins Errorlog geschrieben werden.
Ich vermute, es liegt daran dass du eben PHP7 verwendest und der Code mit PHP7 eben nicht mehr funktioniert.

Die einfachste Lösung wäre jetzt, auf PHP 5.6 umzustellen. Ansonsten eben ins Errorlog schauen und sehen was da angemeckert wird.


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

Zurück zu „Extension Support“