Fenster schließen erkennen für Online Statistik / Chat
Fenster schließen erkennen für Online Statistik / Chat
Wie kann ich für einen Javachat erkennen, dass ein User online ist, wenn der Anbieter dies selbst nicht ermöglichen kann?
Ich dachte an einen kleinen IFRAME der sich selbst aktualisiert oder gibt es noch andere Möglichkeit die Anwesenheit eines Besuchers in einem Fenster herauszufinden?
gruß
Ich dachte an einen kleinen IFRAME der sich selbst aktualisiert oder gibt es noch andere Möglichkeit die Anwesenheit eines Besuchers in einem Fenster herauszufinden?
gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
-
- Mitglied
- Beiträge: 1697
- Registriert: 02.06.2003 14:37
- Wohnort: NRW - immer dem Monitorleuchten folgen...
- Kontaktdaten:
wenn du mit frames arbeitest könntest du mit java ja onClose in einen Frame setzen und dort eine PHP Seite reinschreiben die
Emma
- dann eben sagt das der User das Fenster geschlossen hat
- dem User einen guten Tag wünscht
- sich dann selber schliesst, da das vorher registriert wurde ist dann nichts zu beachten
Emma
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Javascript und damit OnClose ist doch Browserseitig. Wie soll ich diesen Befehl per PHP erkennen?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Indem Du ein PHP-Script damit aufrufst...mgutt hat geschrieben:Javascript und damit OnClose ist doch Browserseitig. Wie soll ich diesen Befehl per PHP erkennen?
Alternativ sendest Du per Java ne Art "Ping"... Das geht aber sehr auf den Server, wenn viele User den Chat offen lassen. Hatte ich bei mir das Vergnügen... 10 User haben den Chat über nacht offen gelassen. Am nächsten Tag hatte ich 10 mal so viele Hits als vorher... Zum Glück war der Chat nicht Trafficbelastend programmiert.
Grüße
Dennis
Aber ich denke ein IFRAME mit Meta:
irgendwo versteckt auf der seite würde doch nicht viel Last bedeuten.
Wie kann ich diese Seite z.B. bei der Wer ist Online Liste integrieren, so dass ich sehe, dass der User im Chat ist? Bzw. wie könnte ich in einer Tabelle abrufen wer online ist?
Code: Alles auswählen
<meta http-equiv="refresh" content="60;URL=imchatonline.php">
Wie kann ich diese Seite z.B. bei der Wer ist Online Liste integrieren, so dass ich sehe, dass der User im Chat ist? Bzw. wie könnte ich in einer Tabelle abrufen wer online ist?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
-
- Mitglied
- Beiträge: 1697
- Registriert: 02.06.2003 14:37
- Wohnort: NRW - immer dem Monitorleuchten folgen...
- Kontaktdaten:
naja .--- alle 60 Sekunden würde JEDER User diesen Link ladenmgutt hat geschrieben:Aber ich denke ein IFRAME mit Meta:
irgendwo versteckt auf der seite würde doch nicht viel Last bedeuten.Code: Alles auswählen
<meta http-equiv="refresh" content="60;URL=imchatonline.php">
Wie kann ich diese Seite z.B. bei der Wer ist Online Liste integrieren, so dass ich sehe, dass der User im Chat ist? Bzw. wie könnte ich in einer Tabelle abrufen wer online ist?
der Chat ist vermutlich java... dann würde ich auch mit java ein on_close machen
weniger Last (nur wenn fenster geschlossen wird)
Problem : rechner stürzt ab: man wird nicht abgemeldet, da müsste man noch was finden...
aber wenn du iframe machst und dort immer eine Seite aufrufst... ist auch ok
Die Weisheit verfolgte mich sekundenlang...
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Aber sie überholte mich und war fortan nicht mehr gesehen !!!
Ich habe jetzt in der constants.php das hinzugefügt:
dann eine neue phpBB Seite erstellt (chatonline.php) mit den Angaben im Kopf:
In der .tpl vom Chat habe ich das hinzugefügt:
erstellt habe ich noch eine chat_header.tpl wo der befehl zum neuladen enthalten ist:
Jetzt lädt er im Chat immer wieder die chatonline.php nach. Damit erhält die Session den Pageeintrag "-13".
EDIT:
Ok die Anzahl der Leute die Online sind, kann ich nun so auslesen, in dem ich diesen Code in einer neuen Seite hinzufüge. (meine Startseite in diesem Fall). Der Wert "- 300" ist in Sekunden, also zeigt er nur die an, die in den letzten 5 Minuten im Chat waren. Ich teste das mal, vielleicht ist es sogar besser, dass zu verkürzen)
dann die variable in der gleichen Datei ans Template senden:
Im entsprechenden Template dann noch an der richtigen Stelle hinzugefügt:
Und das ganze sieht man jetzt auf meiner Startseite: www.maxrev.de unter dem Chatlogo.
Wenn keiner den Chat aufgemacht hat, dann kommt auch keine Meldung an der Stelle.
Vielleicht hier mal einen Screenshot:
[ externes Bild ]
So gut? Oder was meint ihr
Code: Alles auswählen
define('PAGE_CHATONLINE', -13);
Code: Alles auswählen
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_CHATONLINE);
init_userprefs($userdata);
//
// End session management
//
Code: Alles auswählen
<iframe height="1" width="1" src="chatonline.php" scrolling="no"></iframe>
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="refresh" content="60;URL=chatonline.php">
</head>
<body>
EDIT:
Ok die Anzahl der Leute die Online sind, kann ich nun so auslesen, in dem ich diesen Code in einer neuen Seite hinzufüge. (meine Startseite in diesem Fall). Der Wert "- 300" ist in Sekunden, also zeigt er nur die an, die in den letzten 5 Minuten im Chat waren. Ich teste das mal, vielleicht ist es sogar besser, dass zu verkürzen)
Code: Alles auswählen
// Chat Online
$sql = "SELECT session_user_id FROM phpbb_sessions WHERE session_time >= ".( time() - 300 ) . " AND session_page = -13";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't get chatonline data", "", __LINE__, __FILE__, $sql);
}
$affectedrows = mysql_affected_rows();
$chatonline = empty($affectedrows) ? '' : $affectedrows . ' Chat-User online';
// End Mod
Code: Alles auswählen
// send to template
$template->assign_vars(array(
'CHATONLINE' => $chatonline,
...
...
...
Code: Alles auswählen
{CHATONLINE}
Wenn keiner den Chat aufgemacht hat, dann kommt auch keine Meldung an der Stelle.
Vielleicht hier mal einen Screenshot:
[ externes Bild ]
So gut? Oder was meint ihr
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it