Ankündigung

Einklappen
Keine Ankündigung bisher.

Download Counter

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Download Counter

    Hallo, alle zusammen.

    Ich wollte auf meiner Seite einen Zähler einbauen. Man kann sich audiodatein runterladen, und nun will ich das der Besucher sieht welche schon besonders viel runtergeladen worden sind.
    Wie kann ich das mit php realisieren, ich bin noch ganz grün hinter den Ohren mit php.

    Ich hab naürlich auch schon mal gegooglt, was das INet da so zu bieten hat, aber da finde ich nur downloads, und dann auch nur solche, wo ich mir die monatlichen zugriffe, und täglichen, und von leuten aus verdschidenen Ländern usw. anzeigt. ich wollt ja nur die allgemeine downloadanzahl.

    Also ein möglich einfaches script, irgendwie eine Variable, die jedesmal hochzählt, wenn die Datei runtergeladen worden ist, hat von euch villeicht jemand so ein script?

    schon mal Danke


  • #2
    Du kannst es ja machen, das der User auf eine Seite weitergeleitet wird, wo erst der Download startet, und da steigt dann der Zähler, kannst es ja mit einem Besucherzähler machen

    Kommentar


    • #3
      stimmt schon mal ne gute idee, aber irgendwie ja eigendlich ein unnötiger schritt für den Benutzer, oder?

      gibts da nciht noch ne andere Möglichkeit?

      Kommentar


      • #4
        Ich würde eine download.php erstellen.
        Diese nimmt über nen GET-Parameter den Downloadnamen oder ne ID an - wie auch immer du das organisiert hast.

        Daraus wird der Dateiname und Pfad zum Download ermittelt und der zugehörige Counter erhöht.

        Anschließend wird nur noch die Datei gesendet.


        PHP-Code:
        <?php 
         
        // Counter erhoehen

        ...

        // Datei senden

        $path 'download/';
        $file 'datei.mp3';
         
        header('Content-type: '.mime_content_type($file)); 
        header('Content-Disposition: attachment; filename="'.$file.'"'); 
        readfile($path.$file); 
         
         
        ?>
        </div>

        Kommentar


        • #5
          Oder du machst beim klick auf "download" einen AJAX request und zählst dann serverseitig hoch

          Kommentar


          • #6
            ui, das klingt irgendwie zu schwer für mich, wie gesagt, ich bin noch neu in php?

            Danke Griffith für deinen Codevorschlag, aber nun hast du ja geschrieben
            // Counter erhoehen

            muss ich den nicht irgendwo abspeichern, sonst ist der doch beim nächsten benutzer wieder zurückgesetzt oder, oder ist das bei php anders, weil das ne serverseitige sprache ist?

            Kommentar


            • #7
              Ich habe die Stelle leer gelassen, weil ich nicht wei, WIE du es abspeichern willst.

              Du kannst den Counter in einer Datenbank speichern, in einzelnen Dateien oder einer Datei, in der alle Counter-Werte stehen.

              Oder noch anders...

              Das hängt davon ab, wie du deine Downloadseite bisher gestaltet hast.

              Kommentar


              • #8
                Hallo!

                Also ich habe das bei mir so gelöst!

                Das hier ist die load_file.php
                PHP-Code:
                <?php
                //error_reporting(E_ALL);
                session_start();
                require(
                '../config.inc.php');
                require(
                '../function.inc.php');
                $sqlbefehl ="
                   Select 
                    id,
                    loads,
                    cat_name,
                    file_name,
                    file_typ 
                   From 
                    
                $tab_dlfiles 
                   Where 
                    id='"
                .(int)$_GET['id']."'
                   "
                ;
                $ergebnis mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
                $row mysql_fetch_assoc($ergebnis);
                $file $row['cat_name']."/".$row['file_name'].$row['file_typ']; 
                $sqlbefehl ="
                   Update 
                    
                $tab_dlfiles 
                   Set 
                    loads = loads+1 
                   Where 
                    id='"
                .(int)$row['id']."'
                   "
                ;
                $zaehlen mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);

                header('Content-Description: File Transfer'); 
                header('Content-Type: application/octet-stream'); 
                header('Content-Disposition: attachment; filename='.basename($file)); 
                header('Content-Transfer-Encoding: binary'); 
                header('Expires: 0'); 
                header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
                header('Pragma: public'); 
                header('Content-Length: ' filesize($file));
                readfile($file);
                ?>
                Und so verlinke ich auf die load_file.php
                PHP-Code:
                echo "<a href=\"load_file.php?id=".$row['id']."\">
                <img src=\"../grafiken/download.png\" border=\"0\">
                </a>"

                Ich hoffe der Code hilft dir a bisschen weiter!

                mfg der Litter
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                http://www.lit-web.de

                Kommentar


                • #9
                  Also ich hab mich bis jetzt immer von datenbanken fern gehalten und einfach in txt datein abgespeichert.
                  sagen wir mal eine Datein liegt in dem selben ordner wie meine seite auf der die anzahl der downloads angezeigt werden soll. meinetwegen. downloads.php
                  und dann ist auf dieser Seite ein lied, meintwegen Audiotest.mp3 jetzt müsst ich also noch eine Seite haben eine txt, in der ich den counterwert abspeicher. ich nehm mal counter.txt, die sich auch im selben Ordner befindet.
                  Also so stell ich mir das vor, jetzt irgendein counter der hochzählt, usw.
                  Aber wie würde sowas aussehen?

                  danke schon mal für eure zahlreichen Antworten.

                  Kommentar


                  • #10
                    Hallo!

                    Das würde im Prinzip genauso aussehen wie mein Script nur das den Teil mit der DB ersetzen musst mit Funktionen die für das schreiben und lesen und ändern von Dateien gedacht sind.

                    Denn das Prinzip beleibt das selbe,du hast eine extra Datei die zählt und dann in die txt Datei einträgt und durch den header wirst auf das File was was runtergeladen wird verwiesen.

                    Was mit Dateien zusammenhängt kann ich dir leider keine Codebeispiele posten weil ich eigentlich nur mit DBs arbeite,tut mir leid!

                    mfg der Litter
                    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                    http://www.lit-web.de

                    Kommentar


                    • #11
                      Sorry, bin einfach zu schlecht in php, trotzdem danke für eure Hilfe, ich hatte mir das irgendwie einfacher vorgestellt, aber ich glaub dafür muss ich erst mal noch ein wenig was grundlegendes lernen. trotzdem ganz lieben Dank für eure Mühen, und eure Hilfe, ich meld mich wenni ch es doch noch hinbekommen.

                      Taigistal

                      Kommentar


                      • #12
                        Naja eigentlich musst du nur im manual dich über Funktionen belesen die dazu da sind mit Dateien (txt) zu arbeten,also datei öffnen,in Datei schreiben,Datei bearbeiten,aus Datei raus lesen und mit Arrays beschäftigen!

                        Das ist eigentlich alles was man dazu braucht!

                        mfg der Litter
                        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                        http://www.lit-web.de

                        Kommentar


                        • #13
                          hey,
                          mein Tipp: google mal einfach "download counter" xDD
                          ich glaub das is das was du meinst

                          MfG Gandalf
                          Wer Rechtschreibfehler findet kann sie behalten
                          sigpic

                          Kommentar


                          • #14
                            Zitat von Taigistal Beitrag anzeigen
                            Hallo, alle zusammen.

                            Ich wollte auf meiner Seite einen Zähler einbauen. Man kann sich audiodatein runterladen, und nun will ich das der Besucher sieht welche schon besonders viel runtergeladen worden sind.
                            Wie kann ich das mit php realisieren, ich bin noch ganz grün hinter den Ohren mit php.

                            Ich hab naürlich auch schon mal gegooglt, was das INet da so zu bieten hat, aber da finde ich nur downloads, und dann auch nur solche, wo ich mir die monatlichen zugriffe, und täglichen, und von leuten aus verdschidenen Ländern usw. anzeigt. ich wollt ja nur die allgemeine downloadanzahl.

                            Also ein möglich einfaches script, irgendwie eine Variable, die jedesmal hochzählt, wenn die Datei runtergeladen worden ist, hat von euch villeicht jemand so ein script?

                            schon mal Danke
                            Hallo,
                            eigentlich ist das doch recht einfach. Statt die Datei direkt zum Download anzubieten, kannst du dir eine download.php erstellen.

                            Die sieht zum Beispiel so aus:
                            PHP-Code:
                            <?php
                            $arrAvailableFiles 
                            = array("sound1.wav""sound2.mpg", ..)
                            $strRequestedFile = @$_GET["file"];
                            if (!
                            in_array($strRequestedFile$arrAvailableFiles)) {
                              die(
                            "unknown file"); // hard error
                            }
                            // hier counter einbauen
                            header('Content-type: application/octet-stream');
                            header('Content-Disposition: attachment; filename="$strRequestedFile"');
                            readfile("path/to/download/folder/$strRequestedFile");
                            ?>
                            Dein Counter in der simplesten Fassung koennte so aussehen:
                            PHP-Code:
                            <?php
                            $strCounterFile 
                            "path/to/counter.txt";
                            $mixCounter = @file_get_contents($strCounterFile);
                            if (
                            $mixCounter === false) {
                              die(
                            "could not open counter file for reading."); // hard error
                              // if you use it, be aware, the download will then not be provided
                            } else {
                              
                            $intCounter = (int)$mixCounter 1;
                              
                            file_put_contents($strCounterFile$intCounter);
                            }
                            ?>
                            Das wars (ungetestet).
                            "Mein Name ist Lohse, ich kaufe hier ein."

                            Kommentar

                            Lädt...
                            X