Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zugriffszähler für Homepage (https://www.delphipraxis.net/62490-zugriffszaehler-fuer-homepage.html)

Amo 5. Feb 2006 14:37


Zugriffszähler für Homepage
 
Hi!

Ich hätte sehr gerne einen Zugriffszähler auf meiner Homepage. Bestimmt denkt ihr jetzt das ist kein problem: es gibt tausende Seiten, die so etwas anbieten. Aber genau das möchte ich gerade meiden. Ich möchte, dass alles auf meinem Server abläuft (ich benutze einen zweiten PC als Server zuhause). Nun bekomme ich das mit Frontpage nicht hin, aber ich glaube dafür muss man sowieso etwas an den microsoft server schicken, ist ja auch egal jetzt. Was ich suche ist ein HTML-Tag der so etwas erlaubt. Ob jetzt nur Text oder gleich als bild ist egal. Da ich das nicht hingekriegt habe dachte ich mir es gäbe vielleicht einen HTML-Tag, der ein Programm auf der Festplatte ausführt. Dann würde ich ein Programm mit delphi schreiben.

Kann mir da jemand weiterhelfen?

Wuaegner 5. Feb 2006 14:44

Re: Zugriffszähler für Homepage
 
MIt HTML geht das nicht aber mit PHP z.B:
Du könntest aus deiner index.html eine index.php machen in die du einen PHP-Abschnitt einbaust, der z.B eine Textdatei ausliest nach dem aktuellen zählerwert, um einen erhöht und ihn dann wieder abspeichert. Wenn jemand auf Aktualisieren klickt würde deine Besucherzähler nun jedoch auch um eins erhöhen, aber vom Ansatz her wäre das eine Möglichkeit.

vlees91 5. Feb 2006 14:44

Re: Zugriffszähler für Homepage
 
damit geht das nicht
das musst du mit cgi, asp, php o.Ä. machen

hiermit geht das (ist PHP):
Code:
<? function getCounter($counterID)
{
   // each counter value is stored inside a unique file
   // We use $counterID as a part of the file name
   // Example: file name will be "counter1.txt" if $counterID is set to "1"

   $fileName = "counter".$counterID.".txt";

   if( file_exists($fileName) ) {
      list($numVisitors)=file($fileName); // Read contents from the file
   } else {
      $numVisitors=0; // This is the first time the page is accessed
   }

   $numVisitors=$numVisitors+1; // Increase the count

   $fil=fopen($fileName,"w");    // Open the file to replace old value
   fputs($fil,$numVisitors);    // Write the new count to the file
   fclose($fil);            // Close the file
   return $numVisitors;      // Return the new count
}
?>
und dann mit
Code:
<? echo getCounter("1"); ?>
ruft man das ganze auf!
anstatt der 1 kann man auch startseite hinsetzen




PS: Die funktion ist aus dem Spin PHP...

Wuaegner 5. Feb 2006 14:49

Re: Zugriffszähler für Homepage
 
@vlees91 :

Was ist wenn mehrer Leute gleichzeitig die Seite aufrufen? Gibt es dann keine Probleme, wenn die Datei gleichzeitig geöffnet und z.B übeschrieben wird?

vlees91 5. Feb 2006 14:58

Re: Zugriffszähler für Homepage
 
nein
denn imho lässt der server keinen zugriff auf der datei zu, solange ein anderer noch daran rumschreibt!
aber da der schreibvorgang innerhalb weniger ms vorbei ist, fällt das eh keinem auf

es kann auch sein, dass der server den anderen in eine warteschleife setzt und den "antrag" erst bearbeitet wenn der erste fertig ist

davon habe ich keine ahnung
ab es funktioniert
und außerdem: wie soll es sonst gehen
mit einer db gehts, aber da wäre es das gleiche mit dem gleichzeitigen zugriff...

Tubos 5. Feb 2006 15:52

Re: Zugriffszähler für Homepage
 
Zitat:

denn imho lässt der server keinen zugriff auf der datei zu, solange ein anderer noch daran rumschreibt!
Eben, und ich glaube es würde eine Fehlermeldung geben.
Denn die Standard-Dateifunktionen in Programmiersprachen wie C liefern auch einen Fehler, wenn die Datei nicht geöffnet werden kann.

Zitat:

wie soll es sonst gehen
mit einer db gehts, aber da wäre es das gleiche mit dem gleichzeitigen zugriff...
Nein. Datenbanken sind selbstverständlich gegen so etwas abgesichert.

vlees91 5. Feb 2006 15:57

Re: Zugriffszähler für Homepage
 
dann setzt man doch ein @ vor dem fopen...
aber mit den db's: sicher?
der zugriff geschieht so schnell, dass es wahrscheinlich einfach nicht auffällt

Amo 5. Feb 2006 16:39

Re: Zugriffszähler für Homepage
 
Wie kann ich denn jetzt den PHP-code in meinem ganzen HTML-code einbringen? wo kommt der rein? und muss da noch sowas wie "language: PHP" oder sowas stehen? Wo und wie kopiere ich den code rein?

malo 5. Feb 2006 16:53

Re: Zugriffszähler für Homepage
 
Du brauchst eine .php-Datei. Da kannst du ganz normal deinen HTML-Code reinschreiben, wie du lustig bist. An den Stellen, wo PHP vorkommt, fügst du einfach den Quelltext ein.
Code:
<? function getCounter($counterID)
{
   // each counter value is stored inside a unique file
   // We use $counterID as a part of the file name
   // Example: file name will be "counter1.txt" if $counterID is set to "1"

   $fileName = "counter".$counterID.".txt";

   if( file_exists($fileName) ) {
      list($numVisitors)=file($fileName); // Read contents from the file
   } else {
      $numVisitors=0; // This is the first time the page is accessed
   }

   $numVisitors=$numVisitors+1; // Increase the count

   $fil=fopen($fileName,"w");   // Open the file to replace old value
   fputs($fil,$numVisitors);    // Write the new count to the file
   fclose($fil);           // Close the file
   return $numVisitors;     // Return the new count
}
?>
Das ist ja eine Funktion, wie man erkennen kann. Praktischerweise ist der bereits in den PHP-Scriptbegrenzern <? und ?>.
Das kannst du erst einmal irgendwo an den Anfang kopieren.
Da, wo du angezeigt haben willst, wieviele Besucher deine Homepage hat, musst du folgendes einfügen:
Code:
<? echo getCounter("1"); ?>
Das gibt dir dann die Anzahl der Aufrufe aus ;)

Amo 5. Feb 2006 17:09

Re: Zugriffszähler für Homepage
 
Ok, nur wie mache ich aus meiner HTM(L)-Datei eine .php datei? Könnte ich teoretisch gesehen nicht einfach den php-code in Frontpage so eintippen, dann das ganze wieder als index.htm abspeichern und anschließend mit einem convertor zu php convertieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz