[php][htaccess] counter

PRINZ

Lounge-Member
funktionalität:
zählt jeden download von dateien.
sinnvoll wenn user von fremden seiten/programmen direkte downloads tätigen
oder wenn bereits zuviele links direkt auf dateien deiner website verweisen
zb bei bildern, musik-files, gepackenten daten etc.
das script ist unnötig wenn bereits downloaddaten direkt über ein script
versendet bzw verwaltet werden.

umfang des tuts:
anleiteung zur vorgehensweise und grundgerüst.
(kein fertiges script)

grundlagen:
php
htaccess (apacheserver)
keine datenbank
schwierigkeitsgrad: anfänger

dateien :
.htaccess
counter script - rechte zum ausführen
download zähler datei - rechte zum schreiben
originaldatei
dummy datei

schritt 1:
die dummy datei erstellen
es reicht wenn ihr ein leeres textdukument erstellt und es entsprechend mit
oder ohne endung umbenennt.
bsp:
musikdatei.mp3 ( echtes file )
musikdatei.MP3 ( dummy file )

(wenn ihr schon zuviel/nicht änderbare links im web direkt zur datei habt
muß das dummyfile den orginalnamen bekommen)

schritt 2:
die htaccess datei erstellen:
diese legt ihr in der niedrigsten ordnerebene eurer domain an.
in die ".htaccess" datei (der punkt gehört zum namen)
wird eine einfache umleitung zu einen counter notiert.
nemen wir mal an die mp3 datei befindet sich im ordner musik,
bsp www.domain.de/musik/musikdatei.mp3
und das counter script haben wir einfacherweise auch dort.
dann würde die umleitung wie folgt aussehen:
Code:
#1
Redirect permanent /musik/musikdatei.[COLOR="Red"]MP3[/COLOR] http://www.domain.de/musik/counter.php?track=www.domain.de/musik/musikdatei.mp3
was passiert dort?
in euren links zum download solltet ihr auf die dummydatei verweisen
(im beispiel das mit der großgeschriebenen endung)
denn nur diese datei wird dann auf abfragen jeglicher art geprüft und
umgeleitet. würde man die orginale datei umleiten würde man sie nie
downloaden können.
in der weiterleitung wird auf die counter.php verwiesen und eine variable
"track" erhält den eigentlichen download link

schritt 3:
das counterscript mit umleitung zur orginaldatei:
Code:
<?php
//==============> bindet die downloads.php ein 
//==============> damit man auf dessen variable zugreifen kann
include("downloads.php");

//==============> der wert der variable wird um eins erhöht
$downloads++;

//==============> erstellt den richtigen php code für die datei
//==============> der in der downloads.php gespeichert wird
$daten="<"."?php ".
"$"."downloads = ".$downloads.";".
"?".">";

//==============> speichert die daten
$fp = fopen("downloads.php","w+");
fputs($fp,$daten);
fclose($fp);

//==============> weiterleitung zur datei
header("Location: $track");
exit();
?>
was passiert?
es wird die datei downloads eingebunden, in der ist ein variable "$downloads"
bsp für den inhalt der downloads.php
Code:
<?php 
$downloads=0;
?>
( logischerwise muß man die dann auch dort einbinden wo man diese
variable und dessen wert einbinden möchte )
diese wird nun um eins erhöht.
danach wird der neue source code für die datei erstellt und gespeichert.
mit 'header("Location: $track");' und "exit();" wird dann zur in der
variable $track gespeicherten adresse
(welche in der htaccess datei angegeben wurde) umgeleitet.
dann noch die rechte vergeben und fertig ist das grundgerüst.

A C H T U N G !
dieses script sollte man nicht so verwenden wie es hier steht,
über das counterscript kann man über die variable track jegliche datei angeben und herunterladen.
tip: legt im script eine liste an mit den dateienname/verweisen etc die geladen werden dürfen.
desweiteren sollte in den fertigen script die prüfung nicht fehlen ob download.php und die downloaddatei überhaupt vorhanden sind.


für komplexere ausbaumaßnamen fragt hier im forum für serverseitige programmierung um hilfe.


ich danke für tips und verbesseungsvorschläge
grüße Prinz
 
Zuletzt bearbeitet:
Zurück
Oben