Delphi-PRAXiS

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?

Luckie 5. Feb 2006 17:29

Re: Zugriffszähler für Homepage
 
Einfach mit der Endung php abspeichern. Der Server erkennt dann das was zwischen <?php und ?> steht als ausführbaren PHP Code beim Parsen der Seite / Datei.

Amo 5. Feb 2006 17:32

Re: Zugriffszähler für Homepage
 
OH! Da habe ich aber jetzt ein Problem. Ich kann eine datei nicht einfach so als was anderes abspeichern. Wenn ich die datei in "index.php" umbenenne geht das nicht, windows macht daraus automatisch "index.php.htm". Das ist eine Sache, die mich schon länger ärgert :|

(edit) Und Frontpage bietet nicht die Möglichkeit etwas als .php abzuspeichern (/edit)

Luckie 5. Feb 2006 17:34

Re: Zugriffszähler für Homepage
 
Das sollte Windows aber nicht machen.

Amo 5. Feb 2006 17:43

Re: Zugriffszähler für Homepage
 
:cry: :cry: :cry:

Weiß denn jemand wie ich an windows rumspielen muss, damit es tut was es tun soll?

Waldteufel 5. Feb 2006 17:51

Re: Zugriffszähler für Homepage
 
Hi.

Zitat:

Zitat von Amo
OH! Da habe ich aber jetzt ein Problem. Ich kann eine datei nicht einfach so als was anderes abspeichern. Wenn ich die datei in "index.php" umbenenne geht das nicht, windows macht daraus automatisch "index.php.htm". Das ist eine Sache, die mich schon länger ärgert :|

(edit) Und Frontpage bietet nicht die Möglichkeit etwas als .php abzuspeichern (/edit)

Zum 1. Problem: In den Ordneroptionen gibt es irgendwo den Punkt "Erweiterungen bei bekannten Dateitypen ausblenden". Einfach den Haken davor wegmachen.

Zum 2. Problem: Nimm einfach einen anderen Editor... :roll:


Zitat:

Zitat von Amo
Da ich das nicht hingekriegt habe dachte ich mir es gäbe vielleicht einen HTML-Tag, der ein Programm auf der Festplatte ausführt.

:shock: WAAAAAH! :o *herzklopfen* Gut, dass es das nicht gibt... Stell dir mal vor, das Tag hieße <exec> und einer gibt
XML-Code:
<exec href="format.exe" params="c:"/>
ein :pale:

Amo 5. Feb 2006 18:00

Re: Zugriffszähler für Homepage
 
IS JA COOL!!!

VIIIELEN DANK Waldteufel!!! :thumb: :thumb: :thumb: :thumb: :thumb:

Das Problem nervt mich schon seit mindestens einem Jahr!


Und ich nehme an das mit dem PHP wird jetzt wohl auch klappen, werde ich später ausprobieren.

Vielen dank euch allen :thumb:

vlees91 5. Feb 2006 18:38

Re: Zugriffszähler für Homepage
 
du musst die php-Datei auch mit einem webserver aufrufen!
einfach im browser öffnen wird nicht klappen, da das <?php ?> Tag-Paar für die meißten Browser unbekannt ist

EDIT: http://www.gratis-counter-gratis.de/...t/anmelden.php
da kannst du dir auch einen counter machen!!
dann brauchst du nichts zu tun

Amo 5. Feb 2006 19:11

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Amo
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

:roll:

Zitat:

Zitat von vlees91
du musst die php-Datei auch mit einem webserver aufrufen!

Wie meinst du das denn? Also einen Server habe ich ja, nur was muss ich dafür tun?


-Ich habe gerade ausprobiert index.htm zu index.php zu machen, aber wie du vorhergesagt hast, geht es nicht :wink:

malo 5. Feb 2006 19:28

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Amo
-Ich habe gerade ausprobiert index.htm zu index.php zu machen, aber wie du vorhergesagt hast, geht es nicht :wink:

Ist das Script (= die .php-Datei) auf deinem Webspace? Untertstützt der Webspace PHP? Gibt es Fehlermeldungen? Was wird angezeigt? Wie rufst du die Datei auf?

Amo 5. Feb 2006 19:38

Re: Zugriffszähler für Homepage
 
wow, eine menge fragen auf einmal ;) also...

Die .php datei ist auf meiner Festplatte, sodass der Server diese als standartdatei anzeigt, wenn jemand die seite http://amaury.kicks-ass.net aufruft. Dann könnte es natürlich auch sein, dass mein Serverprogramm kein php unterstützt. Wenn ich gerade die datei als index.php habe und auf meine Seite gehe, dann erscheint zwar keine Fehlermeldung aber eine download-aufforderung. Wenn man die datei herunterläd, kann man die Seite (index.php) problemlos im Browser anzeigen.

malo 5. Feb 2006 19:48

Re: Zugriffszähler für Homepage
 
Wo ist die Datei? Auf deinem Rechner? Hast du einen Webserver (Apache) installiert?

Wahrscheinlich hast du einfach nur keine PHP-Unterstützung. ;)

Waldteufel 5. Feb 2006 20:08

Re: Zugriffszähler für Homepage
 
Hi.

Du musst
XML-Code:
<?php ... ?>
statt
XML-Code:
<script language="php"> ... </script>
schreiben. ;-)

faux 5. Feb 2006 20:12

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Waldteufel
Hi.

Du musst
XML-Code:
<?php ... ?>
statt
XML-Code:
<script language="php"> ... </script>
schreiben. ;-)

Nein, muss er nicht.
Es gibt vier Möglichkeiten, wie man PHP einleitet. Und das ist eine dieser Möglichkeiten. ;)

Aus der PHP Dokumentation:
Code:
1. <?php echo("In XHTML- oder XML-konformen Dokumenten benutzen Sie diese Syntax\n"); ?>

2. <? echo ("Die einfachste Möglichkeit: eine SGML-´processing instruction´\n"); ?>
    <?= expression ?> Dies ist eine Abkürzung für "<? echo expression ?>"

3. <script language="php">
        echo ("manche Editoren(wie FrontPage) mögen
              keine ´processing instructions´");
    </script>

4. <% echo ("Optional können Sie auch Tags im ASP-Stil verwenden"); %>
    <%= $variable; # Das ist ein Abkürzung fuer "<% echo . . ." %>


3. ist anscheinend extra für WYSIWYG-Editoren eingeführt worden, wenn man dem echo glauben kann. ;)

Grüße
Faux

Amo 5. Feb 2006 20:15

Re: Zugriffszähler für Homepage
 
Ich benutze kein Apache, da ich auch anderes mit diesem PC mache, wofür ich Windows brauche. Ich habe ein anderes Programm dafür, was wohl wirklich kein php unterstützt. Gibt es für mich denn sonst eine Möglichkeit zu realisieren was ich gerne machen würde?
Gäbe es zB eine Möglichkeit in HTML eine variable zu deklarieren, und sie bei jeden aufruf der Seite um ein zu erhöhen. Dann einfach irgendwo auf der Seite anzeigen lassen. Würde das gehen?

@Waldteufel: Ich habe gelesen es geht beides und für frontpage soll <script> sogar besser sein. Aber ich habe beides ausprobiert und es geht beides nicht^^

faux 5. Feb 2006 20:17

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Amo
Ich benutze kein Apache, da ich auch anderes mit diesem PC mache, wofür ich Windows brauche.

Apache ist ein Webserver. Den gibt es auch für Windows.
Falls du aus einem anderen Grund Apache nicht installieren willst/kannst, dann kannst du auch den Microsoft Internet Information Service (IIS) benutzen, der bei Windows XP (Professional ?) mit dabei ist, und per CGI auch PHP unterstützt. ;)

Zitat:

Zitat von Amo
Gäbe es zB eine Möglichkeit in HTML eine variable zu deklarieren, und sie bei jeden aufruf der Seite um ein zu erhöhen. Dann einfach irgendwo auf der Seite anzeigen lassen. Würde das gehen?

HTML ist keine Programmiersprache, sondern eine Markuplanguage. ;)

Zitat:

Zitat von Amo
@Waldteufel: Ich habe gelesen es geht beides und für frontpage soll <script> sogar besser sein. Aber ich habe beides ausprobiert und es geht beides nicht^^

Laut dem echo aus meinem Post vor deinem, anscheinend schon. ;)

Grüße
Faux

Waldteufel 5. Feb 2006 20:20

Re: Zugriffszähler für Homepage
 
Hi.

Alternativ kann ich auch den Sambar-Server (http://www.sambar.com) empfehlen. Ist leichter konfigurierbar als Apache und unterstützt ISAPI und CGI.

faux 5. Feb 2006 20:23

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Waldteufel
Hi.

Alternativ kann ich auch den Sambar-Server (http://www.sambar.com) empfehlen. Ist leichter konfigurierbar als Apache und unterstützt ISAPI und CGI.

Ohne jetzt eine Server-Sammlung zu machen, wollte ich noch sagen, dass es noch den Quick 'n Easy Web Server von Pablo Software gibt, der weder eine Installation noch eine Konfiguration benötigt, also eben Quick und Easy ist. ;) Ich weiß leider nicht, wie eingeschränkt die Demo-Version ist. PHP sollte aber laufen.

Grüße
Faux

malo 5. Feb 2006 20:23

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Waldteufel
Hi.

Alternativ kann ich auch den Sambar-Server (http://www.sambar.com) empfehlen. Ist leichter konfigurierbar als Apache und unterstützt ISAPI und CGI.

Schonmal was von XAMPP o.Ä. gehört? Das brauchst du nur zu installieren und auszuführen, und schwupps hast du deinen Webserver inkl. Datenbank u.Ä. ;)

Amo 5. Feb 2006 20:26

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von faux
Apache ist ein Webserver. Den gibt es auch für Windows.

Cool, das wusste ich nicht. Ich dachte das gäbe es nur für Unix-systeme :oops: . Das werde ich mir schnellstens besorgen müssen! Soll ja angeblich auch die beste Serversoftware sein.

Also gut jetzt angenommen ich benutze Apache, php wird unterstützt und die Seite mit dem php script funktioniert. Dann wird eine Textdatei erstellt, es wird reingeschrieben, ... laut dem PHP-Script wird aber nirgendwo auf der Seite angezeigt wie der Counter gerade steht, also wieviele benutzer auf der Seite waren (oder habe ich etwas übersehen? :gruebel: ). Wie müsste ich es denn jetzt verändern, damit einfach nur die anzahl der besucher irgendwo auf der Seite engezeigt wird?

malo 5. Feb 2006 20:28

Re: Zugriffszähler für Homepage
 
Code:
<script language="php">
 echo getCounter("1");
</script>
Dieser Code, der bereits in deinem Queltlext eingebaut ist, würde dir das Ergebnis liefern.
edit: Bei Google suchenXAMPP dürfte was für dich sein ;)

faux 5. Feb 2006 20:31

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Amo
Das werde ich mir schnellstens besorgen müssen! Soll ja angeblich auch die beste Serversoftware sein.

Also "die beste Software" kann man wohl nie sagen. Jede Software hat Vor- und Nachteile, würde ich mal sagen.
Aber ich würde dir, wie malo bereits erwähnt hat, XAMPP oder PHP Triad empfehlen, wenn du dich nicht mit Webserver- und PHP-Konfiguration auskennst. ;)

Grüße
Faux

Wieso geht der rote Kasten nicht?

Amo 5. Feb 2006 20:40

Re: Zugriffszähler für Homepage
 
Cool, also ich lade mir gerade xampp herunter, nur der download ist nicht sonderlich schnell (1 hour remaining) also lasse ich es einfach mal laufen und mache morgen damit weiter. Auf jeden Fall danke erstmal :thumb:

Amo 6. Feb 2006 15:50

Re: Zugriffszähler für Homepage
 
Also ich habe jetzt XAMPP installiert. Leider komme ich noch nicht ganz damit zurecht, es ist wirklich völlig anders als das Programm was ich bisher benutzt habe. Hier habe ich irgendwie nichts, wo ich die HTTP-Serveroptionen sehen kann, zB starverzeichnis, freigegebene verzeichnisse und so etwas. Ich brauche noch etwas zeit um da durchzusteigen :wink:

Die Muhkuh 6. Feb 2006 16:12

Re: Zugriffszähler für Homepage
 
Hi,

hab jetzt nicht alles gelesen, falls es schon gesagt wurde, tut es mir leid :oops:

Wenn du eine MySQL-Datenbank hast, befindet sich auf meiner Homepage ( www.flashboard.net ) ein PHP-Counter mit IP-Sperre. Die Installation ist nicht perfekt (wenn was schief läuft, kommt trotzdem das er richtig installiert wurde), aber dafür funktioniert der Counter perfekt :mrgreen: Zumindest zeigt er mir die gleiche Statistik an, wie die Statistik von meinem Hoster :)

malo 6. Feb 2006 16:17

Re: Zugriffszähler für Homepage
 
Zitat:

Zitat von Amo
Also ich habe jetzt XAMPP installiert. Leider komme ich noch nicht ganz damit zurecht, es ist wirklich völlig anders als das Programm was ich bisher benutzt habe. Hier habe ich irgendwie nichts, wo ich die HTTP-Serveroptionen sehen kann, zB starverzeichnis, freigegebene verzeichnisse und so etwas. Ich brauche noch etwas zeit um da durchzusteigen :wink:

Ich bin mir grad nicht ganz sicher, aber soweit ich weiß, kann man das doch über das interne Webinterface einstellen, welches du unter "localhost" oder "127.0.0.1" findest (die URL, im Browser einzugeben) ;)

Amo 6. Feb 2006 16:23

Re: Zugriffszähler für Homepage
 
@Spider: Ich habe leider gar keine Ahnung von SQL und Datenbanken, und ich habe ein keinen SQL-Server.

@malo: Ja, du hast recht, aber da kann man keine einstellungen ändern, nur den Status sehen :(

DP-Maintenance 6. Feb 2006 18:51

DP-Maintenance
 
Dieses Thema wurde von "alcaeus" von "Klatsch und Tratsch" nach "Programmieren allgemein" verschoben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.

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