Downloads zählen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von arkangel, 25. April 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 25. April 2006
    Habe eine Frage:

    Ich möchte, dass in meinem Usercenter die Downloads erfasst werden, vom Gesamtdownloadvolumen abgezogen werden und das Ergebins in einer Datenbank gespeichert wird.

    Wie stell ich das an?

    Bisher habe ich:

    Code:
    $dateiname = "<a href="downloads/<?php print $datei; ?>"><?php print $dateiname; ?></a>";
    und den Query für das Update
    Code:
    mysql_query("UPDATE jos_downloads SET $uebrig = '$uebrig -1' WHERE freigabe='$_GET[id]'");
    
    Zur Erläuterung:
    Code:
    $dateiname ist der Downloadlink, den der User angezeigt bekommt
    $uebrig ist die Anzahl der verbleibenden Downloads für diese Datei
    freigabe ist die Usergruppe die diese Datei downloaden darf
    $_GET[id] idt die Usergruppen-ID, die per Klick auf den Downloadlink übergeben wird.
    
    Wer kann mir entsprechend weiterhelfen?

    Danke schonmal an alle, die es ernsthaft versuchen

    gruß

    Ark
     

  2. Anzeige
  3. #2 25. April 2006
    hi,
    es kommt drauf an, wie ich dich zu verstehen hab :).

    Meinst du mit Gesamtdownlaodvolumen das der User nur z.B. 1.000 MB zum runterladen frei hat,
    und nach jedem Download die MB zahl abgezogen wird ?`
    Sprich erst hat er 1.000 MB saugt sich nen Musik video runter und hat dann noch 900 MB ?

    Wenn ja musst du
    Code:
    
    #2 Abfragen machen
    
    // $filesize= werte die eingetragen worden sind in der Tabelle und dann ausgelesen werden
    // $user_guthaben = werte aus der user tabelle wieviel er noch an MB saugen darf,
    
    
    #Erst machst nen query frägst nach ob das Download Volumen größer ist als das was dem User noch zur #verfügung steht.
    
    if($user_guthaben>$filesize){
    
    $update = "UPDATE jos_downloads SET gesamt_downloadvolumen='gesamt_downloadvolumen-$filesize' WHERE freigabe='$_GET[id]'";
    echo "Ihnen wurde $filesize MB von ihrem Konto ( $user_guthaben MB ) abgezogen.";
    mysql_query($update);
    
    }
    
    
    

    Wenn ich dich Richtig verstanden hab dann wird es wohl das sein.
     
  4. #3 25. April 2006
    Sorry, das meinte ich nicht.

    Ich meinte, dass wenn der User auf den Downloadlink klickt, soll der Download starten und die Anzahl der Downloads (nicht MB, sondern wie oft die Datei runtergeladen werden darf) soll um eins verringert werden.

    Code:
    $update = "UPDATE jos_downloads SET $uebrig = '$uebrig -1' WHERE freigabe='$_GET[id]'
    Also die Anzahl der Downloads, die für diese Datei zulässig sind, sind in der Spalte uebrig. Von der soll eben eins abgezogen werden und gleichzeitig der Download starten, sobald der User den Downloadlink klickt.
     
  5. #4 25. April 2006
    mach erstmal eine abfrage vor dem download
    PHP:
    <?
    if(
    $anzahl  ==  0 ) {
     echo 
    "Keine Downloads mehr möglich" ;
    } else {
     echo 
    "Ok, hier ist dein Download" ;
     
    $update  "UPDATE jos_downloads SET uebrig = uebrig -1 WHERE freigabe=" . $_GET [ id ]. "" ;
     
    mysql_query ( $update );
    }
    ?>
    und sei bissel vorsichtiger... nicht so einfach $_GET in querys lassen, sonst kann ja einer sich die anzahl hochschrauben und mit der datenbank spielen.
     
  6. #5 25. April 2006
    ach, wusste nicht, dass das auch geht .
     
  7. #6 25. April 2006
    So ganz isses das net was ich meinte. Ich meinte, wie kann ich mit einem Linklick den Download starten UND den Query durchführen?

    btw.: per $_GET wird hier nur die id der Usergruppe übergeben, die der User sowieso angehört.
     
  8. #7 25. April 2006
    Du willst gleichzeitig den Download per <a href...... starten lassen und eine andere Aktion durchführen?

    Spontan würde ich sagen:
    Füge eine kleine Zwischenseite ein, der du dateiname und username mitteilst (per GET oder POST).
    In dieser Zwischenseite: Erst das SQL-Update, und dann per header("Location: downloadfile.blabla") den Download initiieren..

    Trifft das eigentlich das Problem, oder hab ich es auch nicht kapiert?
     
  9. #8 26. April 2006
    PHP:
    <?
    if(
    $anzahl  ==  0 ) {
     echo 
    "Keine Downloads mehr möglich" ;
    } else {
     echo 
    "Ok, hier ist dein Download" ;
     
    $update  "UPDATE jos_downloads SET uebrig = uebrig -1 WHERE freigabe=" . $_GET [ id ]. "" ;
     
    mysql_query ( $update );
    }
    ?>
    und bei else machste es entweder mit header() oder readfile().
    hier ein bsp, aber arbeite mal bissel genauer mit mysql. mach ne tabelle mit files weise ids zu und dann auf per get oder post die id mitteilen z.b index.php?user=145&dl=15

    PHP:
    <?
    if(
    $anzahl  ==  0 ) {
     echo 
    "Keine Downloads mehr möglich" ;
    } else {
     
    $update  "UPDATE jos_downloads SET uebrig = uebrig -1 WHERE freigabe=" . $_GET [ id ]. "" ;
     
    mysql_query ( $update );
     
    $data  mysql_fetcfh_array ( mysql_query ( "SELECT id,filename FROM downloads WHERE id=" . $_GET [ 'dl' ]. "" ));
     
    header ( 'Content-Description: File Transfer' );
     
    header ( 'Content-Type: application/force-download' );
     
    header ( 'Content-Length: '  filesize ( $data [ 'filename' ]));
     
    header ( 'Content-Disposition: attachment; filename='  basename ( $data [ 'filename' ]));
     
    readfile ( $data [ 'filename' ]);

    }
    ?>
     

  10. Videos zum Thema
Die Seite wird geladen...