Download- Counter....

Wollnashorn

Grünschnabel
Hallo,

Ich weiß, es gibt schon mindestens 900 Thread`s davon^^, aber die konnten mir alle nicht helfen.
Ich schaff es einfach nicht ein funktionierenden Download- Counter zu machen....
Die Download- Anzahl wird zwar angezeigt, aber der Wert erhöht sich nur wenn ich die Seite neu lade, also wie ein gewöhnlicher Counter...
Wie könnt ich machen, dass der Wert +1 erhöht wird, wenn man auf "Download" klickt?

PHP:
<a href="<?php $counter=fopen("count.txt", "r+");
$aufruf=$aufruf+1;
fputs($counter,$aufruf);
fclose($counter);
echo $aufruf;
?>">Dowload</a>
 
Zuletzt bearbeitet:
Jup...
Ich hab jetzt einfach mal `ne Seite gemacht, die den Download Link automatisch aufruft und den Wert +1 erhöht...

Also: erledigt
 
Der Counter Zählt direkt hoch, wenn ich auf der link seite überhaupt komme, wie mache ich das, dass der Counter erst zählt, wenn man auf den link geklickt hat?

Code:
<div>
<?php $title="Tutorials"; ?>
<ul>
<li><a href='<?$counter=fopen("tut1.txt", "r+");
$aufruf=fgets($counter,999999);
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter,$aufruf);
fclose($counter); ?>http://devilismynick.de.funpic.de/uebungen/Office Tutorials.pdf' target='_blank'>Excel &amp; Word Tutorials</a></li>
</ul>
<? echo "Aufrufe: ".$aufruf;?>
</div>
 
Spontan fallen mir zwei Möglichkeiten ein - vielleicht gibt es auch einfachere.

1. Du rufst beim Klick auf den Link mittels onclick() eine Javascript Funktion auf, die via XMLHttpRequest ein Skript auf dem Server anstößt. Dieses Script erhöht den Zähler um 1 und gibt das OK an den Browser zurück. Danch wechselst Du im JavaScript auf das Link Ziel.

Wie das mit dem XMLHttpRequest funktioniert kannst du im Netz nachlesen (Stichwort AJAX - http://de.wikipedia.org/wiki/Ajax_(Programmierung))


2. Du baust Deine Linkziele einfach um, in dem Du das aufzurufende File (z.B. den Dateinamen) als GET Parameter an ein PHP-Skript übergibst, das den Zähler zu diesem File erhöht und danach eine Umleitung auf das File durchführt.


---

Gewöhne Dir an das PHP sauberer vom HTML zu trennen. Dein Beispiel könnte man auch wie folgt schreiben:

PHP:
<?php
$title = "Tutorials";
$counter = fopen("tut1.txt", "r+");
$aufruf = fgets($counter,999999) + 1;
rewind($counter);
fputs($counter, $aufruf);
fclose($counter);
?>

<div>
<ul>
<li><a href='http://devilismynick.de.funpic.de/uebungen/Office Tutorials.pdf' target='_blank'>Excel &amp; Word Tutorials</a></li>
</ul>
<?php 
echo "Aufrufe: ", $aufruf; 
?>
</div>

Bewirkt genau dasselbe, ist aber leserlicher :)
 
Nein nicht wirklich, ich habe nur den Code leicht angepasst an meiner Seite den Code habe ich von hier vom Wollnashorn, der auch hier die Frage als erstes gepostet hat :P (26.05.07 )
 
Zurück