[HTML|PHP] Counter für Downloadanzahl

M

Mr. Snoot

Gast
Hio,

kann man so einen Counter, der anzeigt wie oft eine Datei schon heruntergeladen wurde, einfach realisieren? Wenn ja, wie :)

Die Dateien sind Zips und können direkt runtergeladen werden (also keine Umleitung o.ä.).
 
Am besten gehst du auf Scar4u, da findest du PHP Scripts für jeden Breich. Ein Downloadcounter ist dort auch dabei. Einfach runterladen den Installtionsanweisungen folgen und schon sollte es funktionieren. Sehr gute Scripte.
 
Gauder schrieb:
Hio,

kann man so einen Counter, der anzeigt wie oft eine Datei schon heruntergeladen wurde, einfach realisieren? Wenn ja, wie :)

Die Dateien sind Zips und können direkt runtergeladen werden (also keine Umleitung o.ä.).

Wenn du etwas PHP kannst: Hier das Grundgerüst (du musst nur noch das zählen einbauen ;))

Die Datei "download" (OHNE .php!!)
PHP:
<?php

$download_dir = './dlbin';

function nodl() { die('File not found.'); }

if (isset($_SERVER['PATH_INFO'])) $pi = $_SERVER['PATH_INFO']; else nodl();
if ((strpos($pi,'//')!==false) || (strpos($pi,'..')!==false)) nodl();
if (preg_match('/[\0-\040]/',$pi)) nodl();
if (!file_exists($download_dir.$pi)) nodl();
if (!is_readable($download_dir.$pi) || !is_file($download_dir.$pi)) nodl();

$f = fopen($download_dir.$pi,'r');
header('Content-Type: application/octet-stream');
fpassthru($f);
fclose($f);

Änderungen an der .htaccess:
Code:
<Files "download">
  ForceType application/x-httpd-php
  AcceptPathInfo On
</Files>
(AllowOverride FileInfo nötig)

Angenommen, deine Dateien liegen im Unterverzeichnis dlbin, dann lädst du sie jetzt über download runter:
http://deinserver/dlbin/meindownload.zip
wird zu
http://deinserver/download/meindownload.zip

>> Die Manipulation ist nicht einmal sichtbar, aber du hast jetzt ein Script dazwischen, in dem du jetzt die Downloads zählen kannst.

Ach, btw: Wer das hier gbrauchen kann: Über ein wenig positives Karma würd ich mich freuen ;)
 
Zuletzt bearbeitet: (Debugcode entfernt O_o)
Ich würde
PHP:
$f = fopen($download_dir.$pi,'r');
header('Content-Type: application/octet-stream');
fpassthru($f);
fclose($f);
ersetzen durch
PHP:
header('Content-Type: application/octet-stream');
readfile($download_dir.$pi);
Das sollte etwas weniger Sevrer-Performance kosten. Aber sei dir bewusst, dass diese Lösung generell nicht für HighTraffic-Websites geeignet ist, da während der gesamten Downloads ein Apache/PHP-Prozess läuft.
 
"HighTraffic-Websites" werden diese Art der Statistik ohnehin mit einer speziellen Serversoftware (eher FTP als HTTP) machen ;)

Ok, an readfile() hatte ich in dem Moment nicht gedacht, ich mache so etwas eher selten... :)
 
Kennt jemand vielleicht etwas einfacheres? Ich komme mit den Sachen von Scar4You nicht klar. :rolleyes:

cu ced2
 
Öh - wo is das Problem? Sollte ganz einfach sein - und einfacher denk ich wirst du's kaum finden :)
 
Nun ja, ich verstehe ganz einfach die Installation nicht. Öffnen sie xxx in ihrem Web-Browser. Also den Code in meine HP einbinden oda watt? Habs dann mal gemacht und musste noch so viel eingeben, MYSQL dingsbums noch nicht festgelegt, ... wie komme ich an diese ganzen Werte heran?
Aber wenns sowieso nicht einfacher zu fidnend ist dann macht euch keinen Kopf. ;)


cu ced2

/edit
Das darf doch nicht wahr sein! Wer gibt denn für diesen Beitrag ngatives Karma? Nur weil ich das nicht verstanden habe?! *groll*
 
Zuletzt bearbeitet von einem Moderator:
@ ced2: du brauchst auf jeden Fall irgendwo Webspace mit einer MySQL-Datenbank und PHP-Unterstützung. Dann solltest du dort auch die Werte wie Datenbankname / Passwort / Server usw. bekommen. Die trägst du bei der Installation ein.

Die Installation startest du, in dem du alle Dateien des Counters die du bei scar4u heruntergeladen hast, auf deinen Webspace hochlädst und die Datei "scarklick_install.php" aufrufst (http://www.deine-adresse.de/scarklick_install.php).

Über die Adresse "scarklick.php?add=" kannst du jetzt Links hinzufügen, die eben vom Counter erfasst werden sollen. Dann spuckt das Script einen neuen Link aus, den du jetzt einfach an Stelle des alten auf die Seite stellst; außerdem bekommst du noch einen kurzen Quelltext, um die Anzahl der "Klicks" auf diesen Link auf einer Webseite auszugeben.
 
Ich kenne mich mit PHP nicht so gut aus, hab schon ca. 10 mal ausprobiert dieses counter zum anzeigen zu bringen - sinnlos.
Darum bitte ich jemanden mir zu helfen, nur einmal zeigen wie es geht.
also macht bitte ein code für das hier:

myserver.de/files/internet/filename.exe


Danke.
 
@ Nick88: hast du die Installation vom Clickcounter auch so durchgeführt wie beschrieben (Datenbankname, Server etc. eingetragen)?
 
Oh Gott, da steht
Bitte benutzen Sie die MySQL-Datenbank nicht für Anwendungen, die die Datenbank stark belasten (z.B. Logauswerteverfahren, Add-Clicks, Chatsysteme, Bannerrotations oder ähnliches). Bei zu starker Beanspruchung unserer Datenbankrechner sehen wir uns gezwungen, unsere Datenbank-Dienste zukünftig einzuschränken.
Meint ihr das darf ich trotzdem machen?

cu ced2
 
Kommt drauf an wie viele Leute deine Seite, bzw. den entsprechenden Link anklicken. Aber selbst bei sehr vielen Benutzern ist das ja nicht sonderlich anspruchsvoll - von daher sollte das keine Probleme geben :o
 
Zurück
Oben