Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Website-Counter selbst programmieren (https://www.delphipraxis.net/120967-website-counter-selbst-programmieren.html)

dominikkv 19. Sep 2008 18:08

Re: Counter
 
Zitat:

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 -.-

jokerfacehro 19. Sep 2008 18:23

Re: Counter
 
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

dominikkv 19. Sep 2008 18:27

Re: Counter
 
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 :zwinker:

DP-Maintenance 19. Sep 2008 18:52

DP-Maintenance
 
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.

Luckie 19. Sep 2008 19:07

Re: Counter
 
Könntest du den Titel bitte etwas aussagekräftiger gestallten? Counter ist so ziemlich nichts sagend.

Thomas F 19. Sep 2008 20:22

Re: Counter
 
Zitat:

Zitat von Meflin
Zitat:

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 ?

jokerfacehro 19. Sep 2008 20:34

Re: Website-Counter selbst programmieren
 
einfächer wäre den mysql befehl count zu nutzen ;)

Delphi-Quellcode:
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'");

?>

Matze 19. Sep 2008 20:35

Re: Website-Counter selbst programmieren
 
Zitat:

Zitat von Thomas F
Aber braucht man da PHP und Database ?

Nein, aber schau doch selbst ...

Thomas F 19. Sep 2008 20:39

Re: Website-Counter selbst programmieren
 
Zitat:

Zitat von Matze
Zitat:

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.

Hador 19. Sep 2008 20:58

Re: Counter
 
Zitat:

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 :zwinker:

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']


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Seite 2 von 4     12 34      

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