• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Klickzähler für Download

DJ-Basedream

Neues Mitglied
Guten Morgen :)

Ich bin leider noch total Blutiger Anfänger in PHP das heist ich kann PHP nicht.

Meine frage ist ob mir eventuell irgent wer ein PHP script geben oder erstellen könnte der den Klick beim dem Download auf dieser seite hier zählt

Carters Pack


ich bedanke mich schon mal viel mals.
 
Werbung:
Hat dein Host dir auch eine Datenbank zur Verfügung gestellt in die du dann die Anzahl der Klicks eintragen kannst?
 
Werbung:
Wenn du es dir programmieren lassen möchtest wäre die Jobbörse das Richtige für dich. Ansonsten könntest du erklären woran es scheitert, damit dir geholfen werden kann.
 
Tja du könntest zählen wie oft die download seite aufgerufen wird, meinst du so etwas?
 
Werbung:
Dafür braucht man nicht zwingend eine Datenbank.
Zählerstand in Datei geht auch!

Kurz zusammengeschustert und ungetestet.

1. Erstelle einen ordner "download"
2. Speichere in diesem deine Download-Datei
3. Erstelle darin eine Datei counter.txt und gib ihr auf dem Server Lese-/Schreibrechte 777 (CHMOD)
4. Erstelle eine neue Datei download.php mit folgendem Inhalt:
PHP:
<?php
//Dateinamen aus übergebenen Link-Parameter anfragen (siehe 5.)
$download = $_GET['file'];

// Datei mit dem Zählerstand
$downcount = "counter.txt";

// Zählerstand auslesen
$count = file("counter.txt");

if(empty($count[0])){ //prüfen ob schon ein Zählerstand vorhanden ist
	$count_now = 0; // falls nein, Zhlerstand NULL
}else{
	$count_now = $count[0]; // falls ja, Zählerstand gleich Wert aus counter.txt
}

// Zählerstanddatei zum Schreiben öffnen
$countfile = fopen($downcount, "r+");

// Zählerstand um 1 erhöhen
$count_now++;

// Neuen Zählerstand in datei schreiben
fwrite($countfile, $count_now);

// Datei schließen
fclose($countfile);

// Weiterleitung zum Download
Header("Location: ".$download);
?>
5. Der Link zum Download sieht dann so aus:
HTML:
<a href="download.php?file=dateiname-und.dateiendung">DOWNLOAD</a>

6. Um den Zählerstand anzuzeigen, musst du nur die counter.txt an der gewünschten Stelle includen.
PHP:
<?php include("download/counter.txt"); ?>

Das wars schon.

Anmerkung:
Das ist eine schnelle Lösung für eine einzelne Datei.
Mit ein paar wenigen Anpassungen kann man das auf unbegrenzt viele Dateien ausweiten. Aber sowas macht dir wieder keiner umsonst ;)
Lerne die Grundlagen von PHP und mache eigene Gehversuche.
Bei den unvermeidlichen Anfängerfehlern wird man dir hier dann gerne helfen.
Ein solcher Counter ist ein simples kleines Ding an dem man gut die ersten Schritte machen kann.
 
Zuletzt bearbeitet:
Ich weiß ich tendiere nur immer gerne zu Datenbanken, ist etwas benutzerfreundlicher als eine Textdatei finde ich, aber für diese Ansprüche reicht denke ich auch eine Textdatei.
 
Hallo, sorry das ich so spät erst antworte, bin erst jetzt dazu gekommen es zu testen, und es funktioniert nicht, zu dem da smit dem ornder download erstellen, eigentlich woltle die die datei im selben pfad ablegen und nicht in einem ordner.

und wie gesgat es funktioniert nicht, habe gemacht was du gesagt hast

habe aber folgende meldung wenn ich auf den download button klicke

Parse error: syntax error, unexpected '{' in /users/dcsuperboy/www/carterspack/download.php on line 10
 
Werbung:
Da fehlt ne Klammer in meinem wie gesagt ungetesteteten Code
das
PHP:
if(empty($count[0])
muss so aussehen
PHP:
if(empty($count[0]))

Bei weiteren Fehlern bitte auch den betreffenden Codeausschnitt um die bemängelte Zeile herum Posten.
Wir können nicht wissen, wie bei dir zeile 10 aussieht!
 
nun bekomme ich die meldung

Parse error: syntax error, unexpected '}' in C:\Inetpub\vhosts\djbasedream.de\httpdocs\carterspack\download.php on line 14

Ich habe die Zeile mit <---Zeil 14 markiert.

PHP:
<?php
//Dateinamen Anfragen
$download = $_GET['file'];

// Datei mit dem Zählerstand
$downcount = "counter.txt";

// Zählerstand auslesen
$count = file("counter.txt");
if(empty($count[0]){
    $count_now = 0;
}else{
    $count_now = $count[0]
} <-- Zeile 14

// Zählerstand zum Schreiben öffnen
$countfile = fopen($downcount, "r+");

// Zählerstand um 1 erhöhen
$count_now++;

// Neuen Zählerstand in datei schreiben
fwrite($countfile, $count_now);

// Datei schließen
fclose($countfile);


?>
 
Zuletzt bearbeitet:
Hinter das
PHP:
$count_now = $count[0]
muss ein ;

Also so:
PHP:
$count_now = $count[0];

Mein Tipp:

Setzt doch einfach eine vordefinierten Counter auf dein DownloadSeite:

HTML:
<img style="border: 0px" src="http://www.webcounterstats.com/count.php?page=202622" /><br /><a href="http://www.0800flowers.com" target="_blank" title="flowers" style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 10px; text-decoration: none; color: #314321">Downloads</a>
    <font style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 10px; text-decoration: none; color: #314321"> </font>

Setz das einfach in deine DownloadSeite und schon hast du einen Counter

Für mehr Auswahl an CounterDesigns:
Einfach mal in google counter eingeben und schon hast du 570 Mio Anbieter, die dir Ihre Counter aufschwatzen wollen:D
 
Zuletzt bearbeitet:
Werbung:
Nein ich will etwas was ewig hält und nicht irgent wann plötzlich nicht mehr funzt, sowas habe ich bereits probiert irgent wann war der counter gelöscht worden

der scrript hier funktioniert einfahc nicht, schade,

kann mir den bitte keiner einen schreiben der geht, ich währe euch wirklich sehr dankbar,

tut mir leid das ich php selber nicht behersche, ich habe es ja versucht zu lernen aber, irgent wie komme ich damit einfach nicht klar, tut mir leid.
 
Zuletzt bearbeitet:
Es hat sich erledigt, ich bitte um entschuldigung, der zähler script funktioniert einwandfrei,l es lagt an die schreib rechte, die musste der server besitzer setzen da es ein windows server ist, nun funktioniert es ich danke euch viel mals.
 
Werbung:
Weil es glaube ich noch nicht angesprochen wurde: Vorsicht, dass sich über so ein Download-Script nicht beliebige Dateien (etwa der Quellcode der index.php-Datei oder der von „config-file-with-passwords.php“) herunterladen lassen.

Aktuell ist in #7 eine Header-Weiterleitung integriert. Das sollte in der Hinsicht okay sein, weil die einen neuen Request auslöst. Aber häufig wird an der Stelle keine Weiterleitung eingesetzt, sondern mit readfile gearbeitet. Das ist grundsätzlich die sinnvollere Methode, da die herunterzuladende Datei so nicht direkt verlinkt werden kann (würde den Counter umgehen), aber dort muss man auf sowas sehr sehr genau achten.
 
Werbung:
okay ich habe das mal just4fun getestet und er sagt mit

Warning: file(counter.txt) [function.file]: failed to open stream: No such file or directory in /users/jpde/www/download.php on line 9

Warning
: fopen(counter.txt) [function.fopen]: failed to open stream: No such file or directory in /users/jpde/www/download.php on line 18

Warning
: fwrite() expects parameter 1 to be resource, boolean given in /users/jpde/www/download.php on line 24

Warning
: fclose() expects parameter 1 to be resource, boolean given in /users/jpde/www/download.php on line 27

Warning
: Cannot modify header information - headers already sent by (output started at /users/jpde/www/download.php:9) in /users/jpde/www/download.php on line 30

kann sein das ich was falsch gemacht habe? ( :D )
 
Zurück
Oben