AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Download Counter erstellen

Ein Thema von Assun · begonnen am 6. Apr 2005 · letzter Beitrag vom 6. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#1

[PHP] Download Counter erstellen

  Alt 6. Apr 2005, 14:35
Hi !

Ich bin nun schon seit geraumer Zeit auf der Suche nach einem PHP Script,
mit dem man auf seiner Homepage anzeigen lassen kann,
wie oft eine bestimmte Datei heruntergeladen wurde.

Kennt jemand so ein Script, das relativ simpel zu verstehen ist ?

Danke !

mfg,

Assun
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 14:39
So geht es bei mir:

Code:
//Download-Zähler
function incprog($id)
{
  //Tabellenabfrage etc ...

  $count = $result['prog_download_count'];
  $newcount = $count + 1;

  $sql_inc = mysql_query("UPDATE pridev_programs SET prog_download_count = '$newcount' WHERE prog_id = $id");

}
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 14:41
wenn man ganz pervers ist könnte man auch auf die idee kommen, mal bei google danach zu suchen
http://www.google.com/search?hl=de&c...r+tutorial&lr=
dann klickt man das erste ergebnis an, und schon hat man was man sucht

  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#4

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 14:42


oh, habe vergessen zu erwähnen, dass ich mich in PHP noch sehr wenig auskenne

d.h. ich kapier dein Beispiel irgendwie net

// Edit : Habe nun ein Script gefunden. Beitrag kann gelöscht werden. Danke sehr !
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#5

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 15:09
Du musst das entweder mit eine Datenbank (MySQL) oder mit Textdateien lösen. Matze hat hier die Lösung mit der Datenbank gepostet:
UPDATE counter SET dl_count = dl_count+1 WHERE prog = 'dein_programm'; Das ganze machst du in einer Tabelle, die z.B. so aussehen könnte:
SQL-Code:
CREATE TABLE `counter` (
  `prog` VARCHAR( 80 ) NOT NULL ,
  `dl_count` INT DEFAULT '0NOT NULL ,
  PRIMARY KEY ( `prog` )
);
Wenn du das ganze jetzt in php machen willst, musst du zuerst eine Verbindung zur Datenbank herstellen. Danach musst du den oben genannten SQL-Befehl mit php ausführen:
Code:
//Download-Zähler
function incprog($dein_programm)
{
  //Tabellenabfrage etc ...

  $count = $result['prog_download_count'];
  $newcount = $count + 1;

  $sql_inc = mysql_query("UPDATE counter SET dl_count = dl_count+1 WHERE prog = '$dein_programm'");
}
Das musst du dann entsprechend ausführen, wenn dein Programm heruntergeladen wird. Du musst dann nur noch dafür sorgen, dass der Funktion das richtige Programm übergeben wird.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#6

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 15:30
und den header("Filetyp: xxx") aufrufen und readfile("datei"),
sonst passiert ja nichts
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 15:33
Zitat von yankee:
und den header("Filetyp: xxx") aufrufen und readfile("datei"),
sonst passiert ja nichts
Was meinst du damit?
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#8

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 16:35
naja, ansonsten wird der Downloadzähler erhöht, aber die Datei, die gedownloadet werden soll kommt nicht.
http://de2.php.net/manual/de/function.header.php

EDIT: besonders der Teil (damit kann man einer bestimmte Datei mit php rausschießen...):
Code:
function dl_file($file){

   //First, see if the file exists
   if (!is_file($file)) { die("[b]404 File not found![/b]"); }

   //Gather relevent info about file
   $len = filesize($file);
   $filename = basename($file);
   $file_extension = strtolower(substr(strrchr($filename,"."),1));

   //This will set the Content-Type to the appropriate setting for the file
   switch( $file_extension ) {
         case "pdf": $ctype="application/pdf"; break;
     case "exe": $ctype="application/octet-stream"; break;
     case "zip": $ctype="application/zip"; break;
     case "doc": $ctype="application/msword"; break;
     case "xls": $ctype="application/vnd.ms-excel"; break;
     case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
     case "gif": $ctype="image/gif"; break;
     case "png": $ctype="image/png"; break;
     case "jpeg":
     case "jpg": $ctype="image/jpg"; break;
     case "mp3": $ctype="audio/mpeg"; break;
     case "wav": $ctype="audio/x-wav"; break;
     case "mpeg":
     case "mpg":
     case "mpe": $ctype="video/mpeg"; break;
     case "mov": $ctype="video/quicktime"; break;
     case "avi": $ctype="video/x-msvideo"; break;

     //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
     case "php":
     case "htm":
     case "html":
     case "txt": die("[b]Cannot be used for ". $file_extension ." files![/b]"); break;

     default: $ctype="application/force-download";
   }

   //Begin writing headers
   header("Pragma: public");
   header("Expires: 0");
   header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
   header("Cache-Control: public");
   header("Content-Description: File Transfer");
 
   //Use the switch-generated Content-Type
   header("Content-Type: $ctype");

   //Force the download
   $header="Content-Disposition: attachment; filename=".$filename.";";
   header($header );
   header("Content-Transfer-Encoding: binary");
   header("Content-Length: ".$len);
   @readfile($file);
   exit;
}

?>
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 17:08
am besten ist es immernoch, die downloads in ein eigenes verzeichnis zu packen, und dann (wichtigst !!!) per
Code:
if ((! is_file ($imagepath)) or (preg_match ("/[\\|\/]/", urldecode ($QUERY_STRING)) != 0)) die ("Fehler: Ungültige Datei

Error: Invalid File");
urldecode ($QUERY_STRING) ==> Dateiname

Schlägt alarm, wenn
die datei keine ist
Slashes oder Backslashes im Dateinamen vorkommen

Außerdem würde ich die Datei statt mit
Code:
application/force-download
mit diesem Content-Type versehen:
Code:
application/octet-stream
Der ist nämlich dafür vorgesehen:
W3C:
The primary subtype, "octet-stream", is to be used in the case of uninterpreted binary data, in which case the simplest recommended action is to offer to write the information into a file for the user.
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#10

Re: [PHP] Download Counter erstellen

  Alt 6. Apr 2005, 19:27
Zitat von yankee:
und den header("Filetyp: xxx") aufrufen und readfile("datei"),
sonst passiert ja nichts
Oder man leitet einfach auf die Datei per header('Location: blabla'); weiter, bei zip-Archiven und Echsen usw. sollte es das tun. Man muss es ja nicht gleich übertreiben, er sagte ja, dass er "sich in PHP noch sehr wenig auskennt". Außerdem soll er den Quellcode ja selber verstehen können...
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz