AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Website-Counter selbst programmieren

Website-Counter selbst programmieren

Ein Thema von Thomas F · begonnen am 19. Sep 2008 · letzter Beitrag vom 21. Sep 2008
Antwort Antwort
Seite 2 von 4     12 34   
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Counter

  Alt 19. Sep 2008, 18:08
Zitat von Thomas F:
Ich könnte aber auch nur die Log-Files der Website runterladen und auswerten, da steht doch alles drin , oder ?
Viel Spass damit -.-
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Counter

  Alt 19. Sep 2008, 18:23
also in php solltest du schon etwas bewandert sein. in mysql reicht da anfängerwissen. du musst nur ne datenbank, mit ner tabelle anlegen. die tabelle enthält ipadresse und timestamp.

du musst also nur wissen wie man ne DB und ne table anlegt, die füllt und datensätze ausliest und wie man mit WHERE umgeht.

mit nem DB manager wie phpmyadmin wird das ganze nicht so schwierig sein, vor allem zeigt es jeden befehl an wodurch du, durch learning by doing schon ne menge rausbekommst.

Gruß Jokerface
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Counter

  Alt 19. Sep 2008, 18:27
Da ich grad ein bisschen Zeit übrig hab und selbst grade PHP lerne hab ich mal ein Beispiel geschrieben wie soetwas mit einer Datenbank aussehen könnte:

Und dann die Abfrage
Code:
<?php
  mysql_connect("localhost", "Benutzername", "Passwort") or die // localhost bzw Adresse des DB-Servers
    ("Keine Verbindung möglich");
    
  mysql_select_db("MeineDatenbank") or die
    ("Die Datenbank existiert nicht");
 
  $abfrage = 'SELECT * FROM `MeineTabelle` ORDER by id DESC LIMIT 1';
  $ergebnis = mysql_query($abfrage);
  $row = mysql_fetch_object($ergebnis); // in row steht der letzte datensatz
      
  $count = $row->ID;
  $timestamp = $row->Time;
  $ip = $row->IP;
  mysql_free_result($ergebnis);    
 
  $datum = date("d.m.Y", $timestamp);
  $uhrzeit = date("H:i", $timestamp);
  echo "$count mal wurde diese Seite schon aufgerufen, zuletzt am $datum - $uhrzeit mit der IP $ip";
 
  $timestamp = time();
  $ip = $_SERVER['REMOTE_ADDR'];
  $abfrage = "INSERT INTO MeineTabelle (Time, IP) VALUES ('$timestamp', '$ip')";  
  mysql_query($abfrage);
?>
Es sollte allerdings schon ein Datensatz in der DB sein, oder anders ausgedrückt: beim ersten mal crasht der Code
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
19. Sep 2008, 18:52
Dieses Thema wurde von "Matze" von "Internet / LAN / ASP.NET" nach "Programmieren allgemein" verschoben.
Da es nicht um Delphi geht, verschiebe ich das noch schnell.
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Counter

  Alt 19. Sep 2008, 19:07
Könntest du den Titel bitte etwas aussagekräftiger gestallten? Counter ist so ziemlich nichts sagend.
Michael
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#16

Re: Counter

  Alt 19. Sep 2008, 20:22
Zitat von Meflin:
Zitat von Thomas F:
Ohne PHP und ohne Database kann man wahrscheinlich nur ganz einfache Counter einsetzen , oder ? ? ?
Naja, es gibt auch recht umfangreiche Counter, die statt mit Datenbanken mit Dateien arbeiten. Aber wenn du was selbergemachtes willst, kommst du um eine serverseitige Programmiersprache wie PHP nicht herum.

Alternativ könntest du aber auch auf Services wie Google Analytics (auch da gibt es seeeehr viele Anbieter) zurückgreifen. Einfach ein kleines Script (JavaScript) in die Seite eingebunden, und schwupps bekommst du eine Monsterstatistik
Das Google Analytics könnte ich nehmen, wenn das wirklich so tolle Statitiken auswirft.

Aber braucht man da PHP und Database ?
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Website-Counter selbst programmieren

  Alt 19. Sep 2008, 20:34
einfächer wäre den mysql befehl count zu nutzen

SELECT COUNT(*) FROM table und um das zum beispiel für einen bestimmten tag rauszubekommen:

Delphi-Quellcode:

<?
$tagesanfang=tageszeit von tag.monat.jahr.00:00:01 in timestamp umwandeln;
$tagesende=tageszeit von tag.monat.jahr.23:59:59 in timestamp umwandeln;

$result=mysql_query("SELECT COUNT(*) FROM table WHERE timestamp>'$tagesanfang' AND timestamp<'$tagesende'");

?>
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Website-Counter selbst programmieren

  Alt 19. Sep 2008, 20:35
Zitat von Thomas F:
Aber braucht man da PHP und Database ?
Nein, aber schau doch selbst ...
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#19

Re: Website-Counter selbst programmieren

  Alt 19. Sep 2008, 20:39
Zitat von Matze:
Zitat von Thomas F:
Aber braucht man da PHP und Database ?
Nein, aber schau doch selbst ...
Ich hab mich schon angemeldet, heute funktionierts aber noch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Counter

  Alt 19. Sep 2008, 20:58
Zitat von dominikkv:
Code:
[...]
  $abfrage = 'SELECT * FROM `MeineTabelle` ORDER by id DESC LIMIT 1';
  $ergebnis = mysql_query($abfrage);
  $row = mysql_fetch_object($ergebnis); // in row steht der letzte datensatz
      
  $count = $row->ID;
  $timestamp = $row->Time;
  $ip = $row->IP;
  mysql_free_result($ergebnis);    
 
  $datum = date("d.m.Y", $timestamp);
  $uhrzeit = date("H:i", $timestamp);
  echo "$count mal wurde diese Seite schon aufgerufen, zuletzt am $datum - $uhrzeit mit der IP $ip";
 
  $timestamp = time();
  $ip = $_SERVER['REMOTE_ADDR'];
  $abfrage = "INSERT INTO MeineTabelle (Time, IP) VALUES ('$timestamp', '$ip')";  
  mysql_query($abfrage);
?>
Es sollte allerdings schon ein Datensatz in der DB sein, oder anders ausgedrückt: beim ersten mal crasht der Code
Nicht nur das. Du verlässt dich auch dabei darauf, dass MySQL die id immer shön für dich hochzählt. Das wird zwar auch gemacht wenn die id mit auto_increment gekennzeichnet ist, jedoch wird die id auch nicht wieder zurückgesetzt, wenn du selbst mal Datensätze aus der Tabelle löscht. Sicherer wäre die Methode mit mysql_num_rows die Anzahl der Datensätze Abzufragen.

Zusätzlich interessant sind übrigends ggf. noch $_SERVER['HTTP_REFERER'] und $_SERVER['HTTP_USER_AGENT']
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 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