Zum Inhalt springen

PhP Script Für Download Counter / no mirroring


Empfohlene Beiträge

Hi zusammen,

nach endlosen goolge Stunden bin ich leider noch nicht nach solch einem Script fündig geworden:

Ich suche ein einfaches php script, mit dem ich neber einem angebotenen .mp3 den Counter ausgeben kann, wie oft ein song runtergeladen wurde.

Weiter soll es den tatsächlichen Link "verschleiern", also das man nicht extern darauf verlinken kann (In der art /download.php?=id4 oder so)

MySql Datenbank vorhanden, Textfile Databse auch OK?

Kann mir jemand was empfehlen?

Gruß,

pfc

Link zu diesem Kommentar
Auf anderen Seiten teilen


$dateiname = ermittle_dateiname($_GET["id"]);
$pfad = "/irgendwas/";

if (is_file($pfad.$dateiname) && file_exists($pfad.$dateiname)) {
header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($pfad.$dateiname));
header("Content-Disposition: filename=$dateiname);

@readfile($pfad.$dateiname);

erhoehe_zaehler_um_eins($_GET["id"]);
} else {
echo "<h2>fehlermeldung</h2>";
}[/PHP]

Ansatzweise. Meine Funktionen solltest du durch sinnvolle ersetzen :)

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen


$dateiname = ermittle_dateiname($_GET["id"]);
$pfad = "/irgendwas/";

if (is_file($pfad.$dateiname) && file_exists($pfad.$dateiname)) {
header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($pfad.$dateiname));
header("Content-Disposition: filename=$dateiname);

@readfile($pfad.$dateiname);

erhoehe_zaehler_um_eins($_GET["id"]);
} else {
echo "<h2>fehlermeldung</h2>";
}[/PHP]

Ansatzweise. Meine Funktionen solltest du durch sinnvolle ersetzen :)

Gruß

hier wurde alles gesagt!

eine kleine verbesserung noch, da ein " gefehlt hat.

[PHP]
$dateiname = ermittle_dateiname($_GET["id"]);
$pfad = "/irgendwas/";

if (is_file($pfad.$dateiname) && file_exists($pfad.$dateiname)) {
header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($pfad.$dateiname));
header("Content-Disposition: filename=". $dateiname); // hier hat ein " gefehlt

@readfile($pfad.$dateiname);

erhoehe_zaehler_um_eins($_GET["id"]);
} else {
echo "<h2>fehlermeldung</h2>";
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

und was genau gibt hier an, dass das file nicht von extern verlinkt werden darf?? ich kanns nicht sehn *schäm*.

anmerkung:

bei mp3.de geht das ja über verschlüsselte (md5 o.ä.) ids die sich täglich ändern.

man kann nämlich wohl von extern auf einen song direkt verlinken wenn man diese id hat, aber eben nur einen tag lang...

Link zu diesem Kommentar
Auf anderen Seiten teilen

und was genau gibt hier an, dass das file nicht von extern verlinkt werden darf?? ich kanns nicht sehn *schäm*.

anmerkung:

bei mp3.de geht das ja über verschlüsselte (md5 o.ä.) ids die sich täglich ändern.

man kann nämlich wohl von extern auf einen song direkt verlinken wenn man diese id hat, aber eben nur einen tag lang...

Hi forTeesSake,

du kannst es nicht sehen, da es nicht da ist ;).

Der Threadsteller hat sich selbst in der aufgabenstellung wiedersprochen:

Durch dieses Verhalten...

(In der art /download.php?=id4 oder so)

schließt er automatisch die 2. Anforderung....

also das man nicht extern darauf verlinken kann

aus.

Wie du schon sagst, wäre eine täglich ändernde ID eine mögliche Lösung des Problems, aber dies würde einen höheren Aufwandt bedeuten vermute ich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

man könnte jetzt natürlich in das Script noch einbauen, daß er die referer-Variable loggt (ich glaube, das war $_SERVER["REFERER"] oder so), dann weiß man evtl., woher verlinkt wurde. Ein Schritt weiter wäre, die referer-Variable daraufhin zu prüfen, ob der User von deiner Domain kommt und nur dann den download erlaubt. (Zur Erklärung: Die referer-Variable wird IMO von den meisten Browsern an den Webserver mitgegeben und beinhaltet die in diesem Browserfenster zuletzt aufgerufene Web-Adresse).

Gruß

Benjamin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie wäre es, wenn du die ID verschlüsselst? Notwendig bsp. die Mcrypt Encryption Functions von PHP. Die ID kann z.B. mit dem aktuellen Datum veschlüsselt werden. Beim anklicken wird wieder entschlüsselt und der Download kann starten. (Einziges Problem: so gegen Mitternacht, könnten Fehler auftreten, da der Link dann veraltet ist). Ist aber eben nur ein Vorschlag. DAHER sollte die Verschlüsselung noch etwas unfangreicher gestaltet werden. Du kannst ja den Schlüssel für jeden Tag beim ersten Aufruf des Tages neu erzeugen und dann in eine DB schreiben lassen. Das wäre dann auch recht einfach mittels unique() möglich.

Ich hoffe, ich konnte dir nen kleinen Denkanstoss geben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm schwierig, dann lieber die andere lösung, denn ich glaube dass bei einer

weiterleitung per meta tag auch kein referer mitgeliefert wird.

dann kann man sich ne seite auf nem eigenen server basteln und per meta tag auf die download datei weiterleiten. und zack! kann man die datei problemlos runterladen weil der referer leer ist

bitte korrigier(t) mich wenn ich falsch liege

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Threadsteller hat sich selbst in der aufgabenstellung wiedersprochen:

Durch dieses Verhalten...schließt er automatisch die 2. Anforderung....

aus.

Tjoa, da her er recht :D

Jedenfalls immer noch besser, als /download/ladmichrunter.mp3 ...

Danke kLeiner_HobBes, dann werd ich das mal einzubinden versuchen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn man ein wenig Lust hat zu basteln, geht auch folgende Variante zum sichern der Dateien:

Wer auf einen Download-Link klickt, wird auf eine "Zwischenseite" weitergeleitet. Hier kann man 1. Werbung unterbringen und 2. kann man hier eine Sicherung einbauen. Beim Aufruf der Zwischenseite wird ein zufälliger Code generiert und dieser in einer Datenbank mit Zeitstempel gespeichert. Ebenfalls auf dieser Zwischenseite wird der Link noch einmal wiederholt in der Form <a href="download.php?id=12&code=A3B5F1">Link</a>. Beim Aufruf der download.php wird dann überprüft, ob der code in der Datenbank drinsteht, ob der Code zu diesem MP3 gehört und ob der Code nicht älter als z.B 15 Minuten ist.

Nur mal so eine Idee... Code gibt's jetzt nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn man ein wenig Lust hat zu basteln, geht auch folgende Variante zum sichern der Dateien:

Wer auf einen Download-Link klickt, wird auf eine "Zwischenseite" weitergeleitet. Hier kann man 1. Werbung unterbringen und 2. kann man hier eine Sicherung einbauen. Beim Aufruf der Zwischenseite wird ein zufälliger Code generiert und dieser in einer Datenbank mit Zeitstempel gespeichert. Ebenfalls auf dieser Zwischenseite wird der Link noch einmal wiederholt in der Form <a href="download.php?id=12&code=A3B5F1">Link</a>. Beim Aufruf der download.php wird dann überprüft, ob der code in der Datenbank drinsteht, ob der Code zu diesem MP3 gehört und ob der Code nicht älter als z.B 15 Minuten ist.

Nur mal so eine Idee... Code gibt's jetzt nicht

Solche vorgänge ala "www.Chip.de" machen das Downloaden unkomfortabler

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

hab hier noch was interessantes Gefunden:

http://www.webmaster-resource.de/tricks/php/download-zaehler-mit-php-und-mysql-teil-1.php

Hab mir daran gestern die Zähne ausgebissen, irgendwie beschreibt die Anleitung nicht, wie der Autor das script schlussendlich einzusetzten gedenkt.

MIt mysql, aber nur einer kleinen tabelle.

Vielleicht hat ja mal jemand lust, es nachzustellen...

Gruß,

pfc

Link zu diesem Kommentar
Auf anderen Seiten teilen

hehe, lustich, fast das selbe habe ich vor ein paar tagen für meine firma fertiggestellt. eine nette kline statistik über den besuch von internetseiten, die auch bei kunden eingebunden werden kann (sowohl das schreiben über externes include, als natürlich auch die grafische auswertung)

was aber dein (verständnis)problem angeht kann ich dir nicht helfen. steht doch alles detailliert drin, und nen download gibts auch.

und ne frage: was hat das denn mit deinem thema zu tun? da wird ja kein download eingeschränkt (du wolltest doch einen download von extern unterbinden ja?) sondern einfach nur ne website zugriffsstatistik geschrieben...

bis denne

Link zu diesem Kommentar
Auf anderen Seiten teilen

das mit dem download von extern haben wir schonweiter oben geklärt

(dass ich doch erst eher nur den download counter brauch...)

"was aber MEIN (verständnis) problem " angeht, wurst du wahrscheinlich erst verstehen, wenn Du es, wie in meiner bitte, nachstellen würdest :D

Denn ja, es gibt ne tolle anleitung, ja, man kann die fertigen .php's sogar runterladen, aber nein, es funktioniert einfach nicht.

Und der Login auf die Admin Seite klappt schon gar nicht.

Das mag an mir leigen, kann aber auch am script leigen, daher meine bitte, ob es jemand mal testen möchte ;)

cya

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich weiss ja nicht wie das skript oben aussieht, aber im Prinzip reicht doch ein symbolischer Link auf eine Datei, welcher nach einer gewissen Zeit eben wieder geloescht wird.

Dazu benoetigt ein Apache Server die Konfiguration: FollowSymlinks On oder so aehnlich. Man braeuchte dazu nicht mal eine Datenbank wenn man den Zeitstempel des Links auswertet.

IMHO die einfachste und wirksamste Loesung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

habe eine sehr gute Lösung gefunden:

http://www.planetmattze.de/v3/scripts--9.html

Hier werden nur die Hits auf jeglichen Links gezählt, im Textfile hochgezählt.

Gutes script, in 2 MInuten aufgesetzt.

eine Lösung zu der vom Threadsteller gestellten Aufgabe,

stellt dieses Script aber nicht da.

Wenn man davon ausgehen würde, dass ich mir an die links immer den counter mitanhänge, wäre es schon problematisch, wenn mehrere benutzer zugleich auf das script zugreifen würden, und somit während des ladens der seite die counter zahlen nicht mehr stimmen würden.

so müsste man noch ein Semaphor um die ganze geschichte herumbauen, damit keine konkurrierenden Zugriffe mehr auf die Downloads möglich wären.

oder verstehe ich dich falsch und du möchtest das script in anderer art und weise nutzen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

erstma: Ich habe den threat gestartet :)

Grundsätzlich hast Du recht, exakt zeitgleiches Zugreifen auf eine Datei stellt tatsächlich ein Problem da, nur wenn die Zugriffe minimal unterschiedlich Auftreten, zählt das script natürlich hoch, und ja, der tatsächlich angezeigte counterstand wird nur beim refreshen sichbar. (da via echo "textfile inhalt ausgeben" nur die im Textfile befindliche Zahl ausgelesen wird)

Ist für mich aber durchaus ausreichend. :D

gruß,

pfc

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

erstma: Ich habe den threat gestartet :)

ups :)

Grundsätzlich hast Du recht, exakt zeitgleiches Zugreifen auf eine Datei stellt tatsächlich ein Problem da, nur wenn die Zugriffe minimal unterschiedlich Auftreten, zählt das script natürlich hoch, und ja, der tatsächlich angezeigte counterstand wird nur beim refreshen sichbar. (da via echo "textfile inhalt ausgeben" nur die im Textfile befindliche Zahl ausgelesen wird)

Ist für mich aber durchaus ausreichend. :D

gruß,

pfc

na dann, viel glück damit

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...