Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

php-script





Frage

Nach nun gut einer Stunde suchen habe ich immer noch nicht das passende Download-Counter Script gefunden. Auf Seiten wie php-archiv oder php-welt usw. gibt es leider nur Scripts, die MySQL brauchen und n Adminmenü haben und IP sperre und statistik und son kram... Ich brauche lediglich ein winziges script, dass bei jedem Klick den Downloadzäher-Wert um 1 erhöht und dann den Download startet! Ich möchte nur EINE EINZIGE Datei zum download anbieten. mehr nicht! Die index.php sieht wie folgt aus: <table width="30%" cellspacing="1" cellpadding="5" class="bodyline"> <tr> <td width="50%" bgcolor="#FF0000"> <p>Datei-Download</p> </td> </tr> <tr valign="top"> <td width="50%" bgcolor="#20242D"> <center> <form action="download.php" method="post"> <input type="submit" name="go" value="DOWNLOAD NOW" class="sbutton"> </form> </center> <p> Filesize: 300MB<br> Downloads: HIER DIE ANZAHL<br> Status: <font color="green"><b>online</b></font> </p> </td> </tr> </table> Bei einem Klick auf den Button "Download Now" soll die Datei 'x.rar' runtergeladen werden und gleichzeitg der Wert für 'Downloads' um 1 erhöht werden! Jetzt braucht ich ja noch die download.php und irgendwas, womit ich den Wert der Downloads in die index.ph einbinden kann! Jedoch habe ich keine Ahnung wie das geht und deshalb bin ich auf eure Hilfe angewiesen! Danke im Voraus!

Antwort 1 von Nessus

Hi,

PHP ohne DB macht keinen richtigen Spaß.
http://www.php-faq.de/q/q-code-klick-zaehler.html

HTH

Nessus

PS: Das script ist recht einfach aufgebaut und ohne weiteres an ein Textfile anzupassen

Antwort 2 von ThomasNr1

Hi,

mir soll es ja auch keinen Spass machen ^^.
Den Counter kann ich nicht umbauen auf Textfiles, da ich keinerlei Wissen für PHP hab.

Antwort 3 von Nessus

Wenn Du keine Ahnung von PHP hast (macht ja auch nichts....), ist das ein netter Anfang um damit beginnen.

Hier wird bei Problemen gerne geholfen, aber bei Sachen getreu dem Motto: Ich habe keine Zeit/Lust-mach mal wirst Du auf Granit beißen.


Nessus

Antwort 4 von FrankieH

@Nessus - in diesem Fall muss ich Thomas Recht geben - für so ein Mini-Progrämmchen braucht man nicht MySQL, er will ja nur einen Integer-Wert irgendwo auf seiner Platte ablegen, diesen nichct sortieren oder statistisch auswerten. *l*

@ThomasNr1 - leider sind Programmierer-Stunden recht teuer. Und Nessus liegt schon richtig, dass man an so einem Beispiel super lernen kann.

Hier mal ins unreine ohne zu testen, wie ich anfangen würde:


<?php

function getFileName()
{
   return(sprintf("%s/userData/downloadcounter", $_SERVER["DOCUMENT_ROOT"]));
}

function getDownloadCounter()
{
    $dCount = 0;
    $fName = getFileName();
    if(file_exists($fName)) {
        $fp = fopen($fName, "r");
        if($fp) {
           $dCount = fgets($fp, 16);
           fclose($fp);
        }
     }
     return($dCount);
}
?>


So - und getDownloadCounter() verwendest Du dann, um die Anzahl in Deiner index.php einzublenden.


<?php
  printf("Downloads: %d <br>\n", getDownloadCounter());
?>


Und Deine download.php-Seite machst Du jetzt alleine. Ist ja nicht mehr schwer - schreibst eine Funktion incAndStoreCounter(), die so aufgebaut ist wie getDownloadCounter(), vorher diese aufruft, um den Zählerstand einzulesen, diesen um einen erhöht und dann wieder in dei Datei schreibt. Dazu die Datei zum Schreiben öffnen und mit fputs arbeiten.

Viel Erfolg, (Spaß magst Du ja nicht *g*)
Frank