Hier auch ein Besucherzähler, der ohne Datenbank auskommt.
Hierzu wird lediglich eine Datei, hier: zdatei.csv, auf dem Server benötigt. Diese läßt sich z.B. mit Excel (Datei speichern unter, Dateityp: csv) erstellen, liegt aber auch im Anhang bei.
Screenshot:
[Blockierte Grafik: http://hilfe.unofficialwsx5.de/v9screens/pics/counter.png]
Diesen php-Code in ein HTML-Objekt und die Dateiendung der aufrufenden Seite auf .php ändern:
PHP
- <?php
- //Globale Einstellungen
- $zeit = time();
- $datum=date("d.m.y");
- $uhrzeit=date("H:i:s");
- //Wie lange dauert die Sperrzeit
- $sperrzeit=600;
- $neuladen=600;
- //Datei, in welcher die Werte gespeichert werden
- $filename="zdatei.csv";
- $zeile = file($filename);
- //*********************************************************************************************************//
- // Einstellungen zur Ausgabe //
- //*********************************************************************************************************//
- $RahmenJN = 1; //0 ... kein Rahmen , 1... Rahmen wird gezeichnet
- $Rahmenstaerke = 1; //Rahmenstaerke in Pixel
- $Rahmentyp = 'solid'; //Rahmenart ...solid, ...dashed, ...double, .....dotted, ...outset, ...groove,
- $Rahmenfarbe= '#0000ff'; //Rahmenfarbe
- $Hintergrundfarbe='#FFFF00'; //Hintergrundfarbe des counters wenn keine gewünscht wid dann ...none
- $Schriftart = 'arial, helvetica, sans-serif'; //Schriftart
- $Schriftgroesse =12; //Schriftgroesse in Pixel
- $Schriftstaerke = normal; //Schriftstärke ...normal, ...bold, .....bolder
- $Schriftfarbe ='#000000'; //Schriftfarbe
- $zaehlerbreite = 160; //Zaehlerbreite 0 ... automatisch auf Breite des Bereiches, >0 ... Breite in Pixel
- //*********************************************************************************************************//
- //ip auslesen
- $ip = getenv(REMOTE_ADDR);
- $eintrag=$zeit."#".$ip."\n";
- //Initialwerte
- $setzeDatum=0;
- $zaehler=0;
- //Prüfung ob IP vorhanden
- foreach($zeile as $sperre) {
- $arraysp = explode("#",$sperre);
- if($ip==rtrim($arraysp[1]) & $arraysp[0] > $zeit -$neuladen) {
- $vorhanden=1;
- }
- }
- //Gesamt- und Tageswert
- //Ermittlung
- foreach($zeile as $wert) {
- $array = explode("#",$wert);
- if($array[0]=='datum'& rtrim($array[1])!=$datum) {
- $setzeDatum=1;
- }
- if($vorhanden!=1) {
- if($array[0]=='heute') {
- if ($setzeDatum==0) {
- $heute=rtrim($array[1])+1;
- }
- else {
- $heute=1;$gestern=rtrim($array[1]);
- }
- }
- if($array[0]=='gestern'& $setzeDatum==0) {
- $gestern=rtrim($array[1]);
- }
- if($array[0]=='gesamt') {
- $gesamt=rtrim($array[1])+1;
- }
- }
- else {
- if($array[0]=='heute') {
- if ($setzeDatum==0) {
- $heute=rtrim($array[1]);
- }
- else {
- $heute=1;$gestern=rtrim($array[1]);
- }
- }
- if($array[0]=='gesamt') {
- $gesamt=rtrim($array[1]);
- }
- if($array[0]=='gestern'& $setzeDatum==0) {
- $gestern=rtrim($array[1]);
- }
- }
- }
- //Eintragung
- $fpwrite = fopen($filename , "w");
- fwrite ($fpwrite, "datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."gesamt"."#".$gesamt."\n".$eintrag, 750);
- fclose($fpwrite);
- //Useronline
- //Schreiben
- $fpanhaengen = fopen($filename , "a");
- foreach($zeile as $useronline) {
- $arrayuseronline = explode("#",$useronline);
- if($arrayuseronline[0] > $zeit -$sperrzeit & $ip!=rtrim($arrayuseronline[1])) {
- fwrite ($fpanhaengen,$useronline, 750);
- }
- }
- fclose($fpanhaengen);
- //Ermittlung fuer Anzeige
- $zOnline = file($filename);
- for($x=0;$x<count($zOnline);$x++) {
- $zaehler=$zaehler+1;
- }
- foreach($zeile as $wert) {
- $array = explode("#",$wert);
- if($array[0]=='datum'& rtrim($array[1])!=$datum){
- $setzeDatum=1;
- }
- if($vorhanden==1){
- if($array[0]=='heute' & $setzeDatum==0){
- $heute=rtrim($array[1]);
- }
- if($array[0]=='heute' & $setzeDatum==1){
- $heute=1;$gestern=rtrim($array[1]);
- }
- if($array[0]=='gesamt'){
- $gesamt=rtrim($array[1]);
- }
- if($array[0]=='gestern'& $setzeDatum==0){
- $gestern=rtrim($array[1]);
- }
- if($array[0]=='rekord'){
- $rekord=rtrim($array[1]);
- }
- }
- else {
- if($array[0]=='heute'& $setzeDatum==0){
- $heute=rtrim($array[1])+1;
- }
- if($array[0]=='heute'& $setzeDatum==1){
- $heute=1;$gestern=rtrim($array[1]);
- }
- if($array[0]=='gestern'& $setzeDatum==0){
- $gestern=rtrim($array[1]);
- }
- if($array[0]=='rekord'){
- $rekord=rtrim($array[1]);
- }
- if($array[0]=='gesamt'){
- $gesamt=rtrim($array[1])+1;
- }
- if ($heute > $rekord){
- $rekord = $heute;
- }
- }
- }
- //Schreiben
- $fpwrite = fopen($filename , "w");
- fwrite ($fpwrite, "datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."rekord"."#".$rekord."\n"."gesamt"."#".$gesamt."\n".$eintrag, 750);
- fclose($fpwrite);
- $rahmenwerte='';
- if ($RahmenJN != 0) {
- $rahmenwerte = ' border: '.$Rahmenstaerke. 'px '.$Rahmentyp. ' ' .$Rahmenfarbe.';';
- }
- $breitevorgabe='';
- if ($zaehlerbreite != 0) {
- $breitevorgabe= ' width:'.$zaehlerbreite.'px;';
- }
- echo '<div style="font-family: '.$Schriftart.'; font-size: '.$Schriftgroesse.'px; color: '.$Schriftfarbe.'; background-color: '.$Hintergrundfarbe. '; '.$rahmenwerte.$breitevorgabe.' height:auto; font-weight:'.$Schriftstaerke.';">
- Heute: '.$heute. '<br/> Gestern: '.$gestern. ' <br /> Gesamt: '. $gesamt .'<br /> User online: ' .$zaehler=$zaehler-4 .'<br/ > Rekord: '.$rekord.' <br></div>';
- ?>
Sollte der Zähler auf mehreren Seiten eingesetzt werden, kann auch die beiliegende Datei counter.php (oder selbst erstellen) auf den Server kopiert werden und mit folgendem Code eingebunden werden: