2012-04-11 9 views
2

Mögliche Duplizieren:
how to count the site current visitors using java script or phpanzeigen Anzahl der Live-Seite Betrachter

Ich habe einen eingebetteten Stream auf meiner Website, aber ich möchte die Anzahl der Live-Zuschauern auf der Seite ziehen. Gibt es eine Möglichkeit, dies mit PHP/AJAX zu tun, zeige die Anzahl der Personen, die gerade eine meiner Webseiten sehen?

+2

ja es gibt einen Weg (fast) alles zu tun –

+0

jede Sitzung dort !! – zod

+0

Kleine Idee: Sobald Sie PHP verwenden, erstellen Sie eine Textdatei. Lassen Sie das Skript den Inhalt lesen und fügen Sie dann ein Zeichen oder eine Zahl hinzu. Die Summe der Viewer könnte der Wert der Anzahl oder der Länge der Zeichenfolge sein. Sie könnten es jede Stunde aktualisieren, um die tatsächliche Anzahl der Zuschauer zu aktualisieren. – chepe263

Antwort

3

DISCLAIMER: Ich habe so etwas vor langer Zeit gemacht, also hier ist der hässliche alte Code (Dass ich keine Mühe machen werde, besser auszusehen, als ich anfing zu programmieren, da dies nur geben soll Sie eine Idee davon, wie es gemacht werden kann, und nicht, um einen bestimmten Code zu füttern).

$timeout = time() - (20); 

$sessid_exist = mysql_query("SELECT sessid FROM bw_sessions WHERE sessid='" . session_id() . "'") or die (mysql_error()); 
$sessid_check = mysql_num_rows($sessid_exist); 

if ($_SESSION['bw_username']) { 
       $sql = mysql_query("UPDATE bw_sessions SET timestamp='" . time() . "', username='" . $_SESSION['bw_username'] . "' WHERE sessid='" . session_id() . "'"); 
} else { 
    if($sessid_check > 0){ 
       $sql = mysql_query("UPDATE bw_sessions SET timestamp='" . time() . "' WHERE sessid='" . session_id() . "'"); 
       } else { 
       $sql = mysql_query("INSERT INTO bw_sessions (id, username, sessid, timestamp, ip) 
     VALUES(null, '', '" . session_id() . "', '" . time() . "', '" . $_SERVER['REMOTE_ADDR'] . "')") or die (mysql_error()); 
      } 
} 


$sql = mysql_query("SELECT distinct sessid FROM bw_sessions WHERE username='' AND timestamp >= '$timeout' ORDER BY timestamp DESC") or die (mysql_error()); 
$sql2 = mysql_query("SELECT distinct sessid,username FROM bw_sessions WHERE username!='' AND timestamp >= '$timeout' ORDER BY username DESC") or die (mysql_error()); 
$num_guests = mysql_num_rows($sql); 
$num_reg = mysql_num_rows($sql2); 
?> 

<font size='1'>Currently Online: <br> 
         <?=$num_guests;?> Guests<br> 
         <?=$num_reg;?> Registered users 

Sie müssen nur eine Tabelle erstellen und Session_id's .. dann abfragen diese Tabelle für jede "letzte" Aktivität. Wenn Sie Echtzeit-Updates wünschen, setzen Sie den Code oben (angepasst an Ihren Tabellendesign) in "online.php" und rufen Sie ihn alle x Sekunden über jquery auf, oder wie auch immer Sie sich entscheiden.

+0

Also, wenn ein Benutzer die Seite betritt, geben Sie ihm einfach eine Sitzung und verfolgen sie, bis sie weg ist? –

+0

Im Wesentlichen ja. Sitzungen sollten für den Besucher einmalig bleiben, solange der Browser geöffnet ist/die Sitzung läuft nicht ab. Lassen Sie es für verschiedene Aktivitäten aktualisieren und fragen Sie nach den letzten Sitzungsaktivitäten. – Blake

+0

Das gibt mir eine ungefähre Vorstellung von dem, was ich tun möchte und etwas, mit dem ich herumspielen kann. Klingt echt für mich! Vielen Dank! –

1

Etwas wie Clicky sollte für Sie arbeiten.

+0

Nun, ich möchte es live auf meiner Website zeigen, nicht nur damit ich es sehen kann. Dies sieht wie Hintergrundanalysen aus. –

1

Wenn Sie es irgendwo gesehen haben, ist es wahrscheinlich möglich, und diese Art von Sache ist in den meisten Foren-Software eingebaut, und es wird auf vielen Websites verwendet, so ist es wahrscheinlich nicht so schwer.

Die übliche Weise, dies zu tun, erhält die IP eines verbundenen Besuchers von $_SERVER['REMOTE_ADDR'] und schreibt dann das in eine Akte und addiert alle eindeutigen IPs, um herauszufinden, wieviele Leute verbunden sind. Dies erfordert eine Art Reinigungsfunktion, um IPs zu entfernen, die nicht mehr verbunden sind.

Das Skript läuft auf Pageload und zählt Besucher in einer Datei. Wenn Sie also ajax verwenden, führen Sie ein PHP-Skript aus, das diese Datei regelmäßig abfragt, um die Zählung dynamisch zu aktualisieren, oder Sie könnten es beim Pagen, aber dann ajax tun ist nicht notwendig, da Sie es einfach mit PHP machen können.

Wenn Sie nicht bereits wissen, wie, herauszufinden, wie ein PHP-Skript in $.ajax ausgeführt wird, ist die erste Sache zu tun, dann ist das Schreiben einer Funktion, die Besucher zählt wahrscheinlich die nächste.

Ich habe 244 Millionen Treffer auf der Suche nach einem solchen Skript, und es gibt eine here und here.

Verwandte Themen