User online zähler?

Post non-phpwcms related topics here - but I don't want to see "hey check this or that other cms". Post if you have a point or worthwhile comment, don't post just to increase you post count!
Post Reply
Clericer
Posts: 40
Joined: Sat 13. Nov 2004, 04:49
Location: NRW Germany

User online zähler?

Post by Clericer »

Hallo,

wie erstellt man eigendlich einen User online zähler?
Wie man in dem Beispiel unten sehen kann meine ich keinen Counter der die Gesamtbesucherzahl misst.

Ein Beispiel:

http://www.weitzelmedia.de
(rechts ganz nach unten scrollen)

Vielen dank im vorraus für die Hilfe

Clericer
cyrano
Posts: 1598
Joined: Sat 31. Jan 2004, 18:33
Location: Stuttgart
Contact:

Post by cyrano »

Hallo,

weitzelmedia ist keine wcms Seite und der Counter ist anders integriert.

versuche mal das hier:


Code: Select all

php-Code:
Code:
<?PHP
//-------------------------------------------------------------
//  artmedic useronline 1.0 || http://www.artmedic.de
//  Copyright (C) 2002 Ellen Baitinger, artmedic webdesign
//  This Software is distributed under the GNU General Public
//  License.
//-------------------------------------------------------------
$daten="besucher.txt";
$time = time();
$ip = getenv("REMOTE_ADDR");
$ablaufzeit = "$time"-"300";
$pruefung = @file($daten);
while (list ($line_num, $line) = @each ($pruefung))
{$zeiten = explode("&&",$line);
if($zeiten[0] <= $ablaufzeit)
{$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$ippruefung = @file($daten);
while (list ($line_num, $line) = @each ($ippruefung))
{$ips = explode("&&",$line);
if($ips[1] == $ip)
{$fp = fopen( "$daten", "r" );
$contents = fread($fp, filesize($daten));
fclose($fp);
$line=quotemeta($line);
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$fp = fopen("$daten", "a+");
flock($fp,2);
fputs ($fp, "$time&&$ip&&\n");
flock($fp,3);
fclose ($fp);
$anzahldaten = file($daten);
$anzahl = count($anzahldaten);
echo "<font face=\"Arial, Helvetica, sans-serif\" size=\"1\">$anzahl User online</font>";
?>


Erstelle noch eine leere Textdatei "besucher.txt" und lade beide in das Hauptverzeichnis von Deiner wcms-Installation, Rechte auf 644 setzen und einbinden mit
Code:
{PHP:counter.php}
.

Ich habe es in meine Vorlagen in die Fuszeile eigefügt - funktioniert bestens :-)

Grüße
Thomas
Gruß/ regards cyrano
--------------------------------------------------------
templates -> http://www.128.weitzelmedia.de
planepix -> http://www.planepix.de
XING -> https://www.xing.com/profile/Thomas_Weitzel3
jscholtysik

Post by jscholtysik »

Hi Clericer,


also ich habe zwei Dateien:

online.php mit folgendem Inhalt:

Code: Select all

<?
$count=0;
$date = date("d.m.Y/H:i:s");
$ip = getenv(REMOTE_ADDR);
$text=$date."###".$ip."\n";
$filename="online.txt";
$zeile = file($filename);

$fp = fopen($filename , "w");
ftruncate ($fp, 0);
rewind($fp);
foreach($zeile as $schreiben)
{
$array = explode("###",$schreiben);
if($ip==rtrim($array[1])){$vorhanden=1;}
if($array[0] > $time -600 & $ip!=$array[1])
{
fwrite ($fp, $schreiben, 750);
}
}
fclose($fp);

$id = filesize($filename);
if($vorhanden!=1 or $id==0){
$datei = fopen($filename,"a");
flock($datei,2);
fwrite($datei,$text,750);
flock($datei,3);
fclose($datei);
}

for($x=0;$x<count($zeile);$x++){$count=$count+1;}
echo $count;echo ' User online';

?>
und eine

online.txt, die aber leer ist.

Die online.php habe ich folgendermaßen in mein Template eingebunden:

Code: Select all

Zur Zeit sind [PHP]include("http://www.scholtysik.net/scripte/user_online/online.php");[/PHP]
In die online.txt werden folgende Infos reingeschrieben:
11.08.2005/00:01:32###213.252.2.22, d.h. Datum/Uhrzeit###IP
Kannst Du Dir ja mal auf http://www.scholtysik.net/cms/index.php rechts unten im Footer anschauen.


Joachim
Clericer
Posts: 40
Joined: Sat 13. Nov 2004, 04:49
Location: NRW Germany

Post by Clericer »

WOW danke :D ,

das ging aber schnell danke schonmal, ich werde mich dann mal ans ausprobieren begeben.

Clericer
cyrano
Posts: 1598
Joined: Sat 31. Jan 2004, 18:33
Location: Stuttgart
Contact:

Post by cyrano »

@ joachim:

ist deine Version sinnvoller als die von mir gelistete?

Auch hinsichtlich der Anzeige der realen User und des Timeouts?
Gruß/ regards cyrano
--------------------------------------------------------
templates -> http://www.128.weitzelmedia.de
planepix -> http://www.planepix.de
XING -> https://www.xing.com/profile/Thomas_Weitzel3
jscholtysik

Post by jscholtysik »

Hi cyrano,

bei meiner Version wird
- kein User in die Textdatei reingeschrieben, wenn er schon mal eingetragen worden ist.
- der User wird erst nach 10 Minuten wieder eingetragen

(das ist das, was ich aus der PHP-Datei lese... :-) )


Joachim
Clericer
Posts: 40
Joined: Sat 13. Nov 2004, 04:49
Location: NRW Germany

Post by Clericer »

Besten dank :D,

ich habe einfach mal die Version von jscholtysik ferwendet.
Fertig und funzt gut.

Clericer
cyrano
Posts: 1598
Joined: Sat 31. Jan 2004, 18:33
Location: Stuttgart
Contact:

Post by cyrano »

ok, danke Dir.
Gruß/ regards cyrano
--------------------------------------------------------
templates -> http://www.128.weitzelmedia.de
planepix -> http://www.planepix.de
XING -> https://www.xing.com/profile/Thomas_Weitzel3
Post Reply