Seite 4 von 4
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 18.02.2017 11:56
von Mahony
Hallo
Da es ja mit PHP 5.6 funktioniert müsste es doch ansich ein Problem mit PHP 7 sein, hat sich da vielleicht ein Befehl im Code geändert?
Es wird wohl daran liegen, dass
ereg in PHP7 nicht mehr existiert.
siehe -->>
http://php.net/manual/de/function.ereg.php
Warnung
This function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0.
Alternatives to this function include:
preg_match()
Grüße: Mahony
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 18.02.2017 15:04
von eumelchen
Danke, Majony,
kann ich denn einfach
ereg mit
preg match() ersetzen?
Die Zeile sieht ja so aus:
kann ich das ändern in:
LG eumelchen
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 19.02.2017 17:11
von Mahony
Hallo
Evtl so
Das "i" nach der Suchmuster-Begrenzung kennzeichnet eine Suche ohne Berücksichtigung von Groß- und Kleinschreibung.
Das ganze sähe dann so aus
Code: Alles auswählen
function purgeLogs() {
$purgeDelay = time();
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 = preg match("/privmsg/i", $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();
}
}
Grüße: Mahony
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 19.02.2017 17:34
von eumelchen
Hallo Mahony,
habe ich versucht, wenn ich den Chat aufrufe dann kommt nur eine leere weiße Seite,
aber keine Fehlermeldung.
LG eumelchen
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 19.02.2017 18:07
von Mahony
Hallo
eumelchen hat geschrieben:habe ich versucht, wenn ich den Chat aufrufe dann kommt nur eine leere weiße Seite,
aber keine Fehlermeldung.
Sorry, da war noch ein Fehler drinnen bei
preg match das sollte nämlich
preg_match heißen.
So sollte das funktionieren
Code: Alles auswählen
function purgeLogs() {
$purgeDelay = time();
if ($purgeDelay < (time() - 36) || !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 = preg_match('/privmsg/i', $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();
}
}
Grüße: Mahony
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 19.02.2017 18:17
von eumelchen
Änderung hat leider nichts gebracht, weiterhin nur weiße Seite.
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 19.02.2017 18:33
von Mahony
Hallo
Das kann eigentlich nicht sein, denn bei mir funktioniert das.
Code: Alles auswählen
function purgeLogs() {
$purgeDelay = time();
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 = preg_match("/privmsg/i", $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();
}
}
Ob das Logging schon funktioniert habe ich noch nicht getestet, aber es sollte jedenfalls keine weiße Seite erscheinen.
Grüße: Mahony
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 19.02.2017 18:42
von eumelchen
Hast du im letzten Code etwas geändert? Jetzt kommt der Chat wieder wenn ich ihn aufrufe.
Jetzt werde ich mal schauen ob Logs gespeichert werden.
Erst einmal Danke!
LG eumelchen
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 20.02.2017 20:21
von eumelchen
Hallo Mahony,
wie sieht es denn bei Dir aus? Bei mir wurden leider keine Logs gespeichert.
Ansonsten funktioniert der Chat einwandfrei.
LG eumelchen
Re: [phpBB3.2]Forum und blueimp AJAX Chat
Verfasst: 20.02.2017 21:08
von Mahony
Hallo
eumelchen hat geschrieben:wie sieht es denn bei Dir aus? Bei mir wurden leider keine Logs gespeichert.
Bei mir werden auch keine Logs gespeichert. Warum, das weiß ich auch nicht denn es wird nichts im Errorlog gespeichert.
Es scheint so, als ob die Funktion für den Chat überhaupt nicht existiert (obwohl sie ja da ist). Oder aber die Abfrage ergibt immer true und wird deshalb nicht ausgeführt.
Selbst mit dem Snippet zum sofortigen ausführen funktioniert das nicht. -->
https://sourceforge.net/p/ajax-chat/dis ... /07870291/
Open lib/class/CustomAJAXChat.php and add
Code: Alles auswählen
function parseCustomCommands($text, $textParts) {
switch($textParts[0]) {
case '/makelog':
$this->purgeLogs();
return true;
default:
return false;
}
}
then use /makelog to do it.
wobei diese Anleitung so auch nicht ganz korrekt ist, denn man muss die Funktion nicht einfach nur hinzufügen sondern diese Funktion
Code: Alles auswählen
function parseCustomCommands($text, $textParts) {
return false;
mit der oben genannten ersetzen.
Ich werde dann mal weiter forschen, vielleicht komme ich dem Fehler ja noch auf die Schliche.
Grüße: Mahony