Bezoekers online

Jow gasten,

Ik heb een vraagie. Is er iemand die een source heb, of een goeie site weet waar ik iets als het volgende kan vinden?

Ik zoek een PHP bestand die kijkt hoeveel bezoekers er op een moment op de site zijn, en dit aantal wegschrijft naar een .txt bestand. Net zoiets als je ziet bij macosx.nl op de voorpagina, helemaal bovenaan.

Heb al wat gezocht maar kan niets vinden, en het moet per se schrijven naar een .txt bestand.

Thx :slight_smile:

[code:1:8cc0ed39bf]<?php // pak ip van bezoeker // lees txt bestand met recente ip adressen en tijd // kijk of bezoeker al voorkomt // vervang regel of voeg bezoeker toe // kijk of er bezoekers meer dan 15 minuten afwezig zijn // wis die regels // schrijf het txt bestand weer weg // aantal bezoekers = aantal regels van het nieuwe tekstbestand. // schrijf aantal bezoekers naar een (ander) tekst bestand ?>[/code:1:8cc0ed39bf]

Kun je hier iets mee?

KLinkt goed, maar hoe doe ik dit in PHP? :P

Onderaan heb ik een oplossing gepost. Het file_put_contents heb ik hier laten staan omdat die pas in 4.3 aan PHP is toegevoegd.

[code:1:8b18c9375e]<?php

if &#40;! function_exists &#40;'file_put_contents' &#41;&#41; &#123; 
	define &#40;'FILE_APPEND' ,1&#41;; 
	function file_put_contents &#40;$filename ,$content ,$flags =0&#41; &#123; 
		if &#40;!&#40;$file=fopen&#40;$filename,&#40;$flags &amp;FILE_APPEND &#41; ? 'a' &#58;'w' &#41;&#41;&#41; 
		return false;
		$n=fwrite&#40;$file,$content&#41;; 
		fclose&#40;$file&#41;; 
		return $n ? $n &#58; false ;
	&#125; 
&#125;

?>
[/code:1:8b18c9375e]

Al eens op fatscripts.com gezocht ?

Ik heb er nog wat aan liggen sleutelen, deze is getest en werkt! (Wel nog even het pad wijzigen en de premissies instellen.)

[code:1:b6b1baece2]<?php

$ipbestand  = '/Users/uwvisie/htdocs/data/lijst.txt';
$telbestand = '/Users/uwvisie/htdocs/data/teller.txt';

// pak ip van bezoeker
$ipadres = $_SERVER&#91;&quot;REMOTE_ADDR&quot;&#93;;

$nieuwelijst = &quot;&quot;;

if &#40;$iplijst = @file_get_contents&#40;$ipbestand&#41;&#41; &#123;
	if &#40;preg_match_all&#40;&quot;/&#40;&#91;d.&#93;+&#41;\t&#40;&#91;d&#93;+&#41;/&quot;, $iplijst, $matches&#41;&#41; &#123;
		for &#40;$i=0; $i&lt;count&#40;$matches&#91;0&#93;&#41;; $i++&#41; &#123;
			if &#40; $matches&#91;1&#93;&#91;$i&#93; != $ipadres &amp;&amp; &#40;abs&#40;date&#40;&quot;Hi&quot;&#41; - $matches&#91;2&#93;&#91;$i&#93;&#41; &lt; 15&#41; &#41; &#123;  
				$nieuwelijst .= $matches&#91;1&#93;&#91;$i&#93; . &quot;t&quot;.date&#40;'Hi'&#41;.&quot;n&quot;;
			&#125;
		&#125;
	&#125;
&#125;
$nieuwelijst .= &quot;$ipadrest&quot;.date&#40;'Hi'&#41;.&quot;n&quot;;

// schrijf het txt bestand weer weg
file_put_contents &#40;$ipbestand, $nieuwelijst&#41;;

// aantal = aantal regels van het nieuwe tekstbestand.
$aantal = count&#40;explode&#40;&quot;n&quot;,$nieuwelijst&#41;&#41; - 1;
file_put_contents &#40;$telbestand, $aantal&#41;;

?>[/code:1:b6b1baece2]

Echt top van je dat je de moeite neemt om een PHP script in elkaar te sleutelen voor een willekeurig iemand van het forum 8)

[quote:7dc76eed2f="Syndic"]Echt top van je dat je de moeite neemt om een PHP script in elkaar te sleutelen voor een willekeurig iemand van het forum 8)[/quote:7dc76eed2f]

Graag gedaan. Ik heb dit script waarschijnlijk zelf ooit een keer wel nodig en het is een leuke vinger oefening.

rbroen, wil je ook eens zo'n een stukje code maken maar dan html => javascript ofzo als da gaat. mijn webruimter (van Telenet) ondersteunt geen php, denk ik. en zo'n script lijkt me wel leuk.

Je zou ook even op internet kunnen zoeken. Zijn genoeg pagina's die honderden van dat soort scripts aanbieden. Veelal allemaal freeware. Degene waar ik voornamelijk kijk is www.hostscripts.com

ja, idd, maar in het script van ibroen word het in eenn .txt gezet .

Lees nou eens goed: Javascript mag niet schrijven naar bestanden, dus heb je er niks aan als je dat wil. Het zal toch echt via een andere dienst of server-side moeten.

mmmmm, ik zit al een eind verder, nie met javascript, maar iet van de server zelf ij schrijft nu de tijd, en datum nu moek ergewoon voor zorgen dat ie "naam" invult als een IP adres...