TinTin Geschrieben 19. April 2002 Geschrieben 19. April 2002 hi, ich such nach einer einfachen möglichkeit, die anzahl der downloads einer datei von meiner website zu zählen. eventuell auch sonstige seiten aufrufe... hat da jemand eine idee, wie man das ganze elegant und ohne grossen aufwand regeln kann. aufrufe in ne text datei schreiben, ohne db. ich brauch da mal nen denkanstoss. mfg TinTin :cool: Zitieren
Valium Geschrieben 19. April 2002 Geschrieben 19. April 2002 Mein Vorschlag: Du verpasst dem ganzen nen Link (z.B. zu download.php) mit ner ID, die Datei des Linkes öffnet die Textdatei und schreibt die Anzahl der Downloads+1 rein und sendet nen Header mit der Datei. Zitieren
thomee Geschrieben 19. April 2002 Geschrieben 19. April 2002 Hallo, du hast vermutlich keinen direkten Zugriff auf das Server - Logfile oder? Von dieser Annahme ausgehend würde ich folgendes vorschlagen: Biete die Datei nicht direkt zum download an, wie z.B.: <a href="file.zip">file</a> sondern lass das ein skript machen wie z.B. <a href="download.php?file=file.zip">file</a> download.php sieht dann evtl. so aus: <?php if (file_exists($file)) { //datei zum lesen und schreiben öffnen $fp = fopen($file."log", "r+"); //Anzahl downloads von $file einlesen: $count_file= fgetss($fp, 1000); //Anzahl erhöhen $count_file+=1; //dateizeiger zurücksetzen rewind($fp); //rausschreiben flock($fp,2); fwrite($fp, "$count_file"); flock($fp,3); //dateizeiger schließen fclose($fp); //header senden header("Content-type: application/octet-stream"); header("Location: http://www.deinedomain.de/".$file); //nachfolgenden code nicht ausführen exit; } ?> [/PHP] Ob das mit dem Header funktioniert weiß ich nicht. Infos hier: http://www.ietf.org/rfc/rfc2183.txt http://www.php.net/manual/en/function.header.php der Code ist NICHT getestet und es fehlen noch einige Überprüfungen! Ciao, Thomas Zitieren
Empfohlene Beiträge
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.