Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
  Druckansicht

  [Tutorial] [PHP] Counter
Autor Nachricht
    BeitragVerfasst: 19.08.2005 18:53 
Was passiert?
Der Counter gibt an, wieviele Besucher die Homepage schon hatte

Beispiel
Hier gelangt ihr zur Vorschau

Quellcode + Notizen

Code:
<?php

//Dateiname fuer Besucherzahl
$file = "counter.txt";

//Anzahl der Stellen fuer Besucheranzahl
$stellen = 5;

//Counter.txt wird ausgelesen und beinhaltender Wert um 1 erhoeht
if(file_exists($file))
  {
  $fp=fopen($file, "r+");
  $zahl=fgets($fp,$stellen);
  $zahl++;
  rewind($fp);
  flock($fp,2);
  fputs($fp,$zahl,$stellen);
  flock($fp,3);
  fclose($fp);
}

//Counter.txt existiert nicht; sie wird neu erstellt und beinhaltet den Wert 1
else{
  $fp=fopen($file, "w");
  $zahl="1";
  fputs($fp,$zahl,$stellen);
  fclose($fp);
}

//Formatierung der Funktion
$zahl=sprintf("%0".$stellen."d",$zahl);

?>


Einbau in Homepage
Code:
<?php   
include("../../scripte/counter/counter.php");   echo "$zahl"; 
?>


In diesem Fall, steht "../../scripte/counter/counter.php" für die Quelle der Datei wo der oben angegeben Code enthalten ist.
Das File muss als .php gespeichert werden, damit das Script verarbeitet wird. Auf der Stelle einer Seite wo es angezeigt werden soll muss folgender Code platziert sein:

Styles
Natürlich kann auch die Ausgabe verändert werden, um das ganze schöner aussehen zu lassen. Das ganze erfolgt durch HTML-Tags

Code:
<?php   
include("../../scripte/counter/counter.php");   
echo "<font size=2 color="'fff222">$zahl</font>"; 
?>


Viel Spaß damit :)


Nach oben
  
 

  re: [Tutorial] [PHP] Counter
    BeitragVerfasst: 01.10.2005 16:39 
Neuankömmling
Offline

Beiträge: 21
Registriert: 01.10.2005 15:38
Hab hier noch ne Version mit 24Stunden-IP-Sperre und Client-Logfunktion

Das Script vergleicht die IP-Adresse des Benutzers, der die Seite besucht, mit denen die schon in der Sperrdatei sind.
Falls IP in der besagten Datei vorhanden, wird noch geprüft ob der letzte Besuch vor 24 Stunden war. (IP Adressen wechseln nach 24 Stunden bei den meisten DSL-Anschlüssen, so ist eine genauere Anzeige möglich ).

Zu der Log-Funktion.
Das Script speichert für jeden Client folgende Daten in einer Datei ab.
o IPAdresse
o Hostname
o woher er kommt (falls die Seite verlinkt war)
o und die Kennung des Browser des Clients

Die Besuchszeit ergibt sich aus dem Dateinamen. ( time() )


counter.php
Code:
<?php

function logaccess() {

   //--------------------------------------------------
   
   $basedir = "./";
   $logpath = "./";
   
   $ip = getenv("REMOTE_ADDR");
   $host = gethostbyaddr($ip);
   $timestamp = time();

   $log = time()."\n";
   $log .= $ip."\n";
   $log .= $host."\n";
   $log .= $_SERVER["HTTP_USER_AGENT"]."\n";
   $log .= $_SERVER["HTTP_REFERER"]."\n";

   //--------------------------------------------------
   
   $blockedips = @file($basedir."blockip");
   
   $do_count = TRUE;
   
   if( count($blockedips) != 0 ) {
      for( $i = 0; $i != count($blockedips); $i++ ) {
         $ipdata = explode(",", $blockedips[$i]);
         if( trim($ipdata[0]) == $ip ) { $do_count = FALSE; }
         if( trim($ipdata[1]) < time()) { $blockedips[$i] = ""; }
      }
   }
   
   //--------------------------------------------------
   
   $counter = @file($basedir."count");
   $count = intval($counter[0]);
   
   $cf = @fopen($basedir."count", "w");
   if( $do_count ) {
      
      //--------------------------------------------------
      
      $blockips = implode("\n", $blockedips);
      $blockips .= $ip.",".(time() + 86400)."\n";
      
      $bip = @fopen($basedir."blockip", "w");
      @fwrite($bip, $blockips);
      @fclose($bip);
      
      //--------------------------------------------------
      
      $count++;
      
      //--------------------------------------------------
      
      $clientlog = @fopen($logpath.$timestamp, "w");
      @fwrite($clientlog, $log);
      @fclose($clientlog);
      
      //--------------------------------------------------
   }
   
   @fwrite($cf, $count);
   @fclose($cf);

   //--------------------------------------------------
   
   return $count;
   
   //--------------------------------------------------
   
}

?>


Aufruf des Counters in neuer Datei
Code:
<?php
include("counter.php");

echo logaccess();

?>


Nach oben
 Profil  
 

Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


  Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
RSS-Feed
Impressum und Kontakt
Style created by phpBB3 styles , ziola alveo akuna
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Optimized by SEO phpBB
Deutsche Übersetzung durch phpBB.de