kostenloser Webspace werbefrei: lima-city


Kann meine Downloads nicht ablesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    infinitysounds

    Kostenloser Webspace von infinitysounds

    infinitysounds hat kostenlosen Webspace.

    Hi Leute,

    Wenn ich folgenden Link eingebe:
    http://www.infinitysounds.de/Template/dlcounter/DrWeb_DownloadZaehler.php?d=1&do=Count
    sollte ich eigentlich die Anzahl meiner Downloads sehen können...
    kann ich aber nicht.

    Grüße,

    InfinitySounds

    Beitrag zuletzt geändert: 24.6.2011 14:46:23 von infinitysounds
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. infinitysounds schrieb:
    Hi Leute,

    Wenn ich folgenden Link eingebe:
    http://www.infinitysounds.de/Template/dlcounter/DrWeb_DownloadZaehler.php?d=1&do=Count
    sollte ich eigentlich die Anzahl meiner Downloads sehen können...
    kann ich aber nicht.

    Grüße,

    InfinitySounds
    Ich auch nicht! Da es sich um ein phpSkript handelt dass aufgerufen wird kann man den Fehler nur finden wenn man den Code dieses (und evtl. aufgerufener) Skripte sieht. Daher solltest du den Skriptcode hier auch zugänglich machen.
  4. Autor dieses Themas

    infinitysounds

    Kostenloser Webspace von infinitysounds

    infinitysounds hat kostenlosen Webspace.

    Konfig:
    <?php
    if(!defined('YD_FW_NAME')) die('Diese Datei darf nicht allein aufgerufen werden.');
    $db = array();
     
    // Typ des Datenbank-Servers
    $db['type'] = 'mysql';         
     
    // Name der Datenbank   
    $db['db']   = 'db_199720_1';     
     
    // Name der Tabelle
    $db['table']= 'drweb_zahhler';    
     
    // Benutzername
    $db['user'] = 'USER9620';                 
     
    // Dessen Kennwort
    $db['pass'] = 'hlix'; 
     
    // Datenbank-Host, in der Regel localhost
    $db['host'] = 'mysql.lima-city.de';        
    ?>
     


    Dateien:
    <?php
    if(!defined('YD_FW_NAME')) die('Diese Datei darf nicht allein aufgerufen werden.');
    $dl_ids = array();
     
    // Jede Download_ID, die Sie benutzen möchten, muss einen Pfad *ab wwwroot* zur einer Datei besitzen. 
    // Im Beispiel sind das die IDs 1 und 2
    // Aus Sicherheitsgründen werden NUR diese IDs werden vom Script akzeptiert
    $dl_ids[1] = "http://download.lima-city.de/infinitysounds/blubbcast%20folge%202.mp3";
     
     
    // In der Datei /lib/YDFramework2/YDClasses/YDFileSystem.php können Sie sehen, welche Mime-Typen
    // definiert sind. Fehlt ein Mime-Typ, zum Beispiel der für OpenDocument-Dateien, ergänzen Sie die
    // Liste wie im folgenden Beispiel. Liste mit Mime-Typen: http://www.iana.org/assignments/media-types/
    $GLOBALS['YD_FS_MIME_MAPPING']['odt'] = "application/vnd.oasis.opendocument.text";
    ?>
     


    Aufruf:
      
    
    <?php
    // April 2006 von Rene Schmidt für DrWeb.de
     
    // Wenn Sie die gezaehlten Downloads in einem anderen Skript weiterverarbeiten wollen,
    // gehen Sie wie im folgenden Beispiel gezeigt vor. Kommentieren Sie hierfür die Zeile
    // YDInclude( 'YDF2_process.php' ); 
    // im Skript DrWeb_DownloadZaehler.php aus
     
    $proc = false; // Schaltet die Verarbeitung des Skripts durch das Framework ab
    $id = 20; // Beispiel
     
    require 'DrWeb_DownloadZaehler.php';
     
    $dl = new DrWeb_DownloadZaehler($id);
    printf("Test f&uuml;r Sch&uuml;ssel Nr. %d: %d", $dl->id, $dl->getCount());
     
    ?>
     
    Syntax highlighting powered by GeSHi


    Hauptcode:
    View file DrWeb_DownloadZaehler.php
       
    
    <?php
    // April 2006 von Rene Schmidt für DrWeb.de
     
    // Initialize the Yellow Duck Framework
    include_once( dirname( __FILE__ ) . '/lib/YDFramework2/YDF2_init.php' );
     
    // Includes
    YDInclude( 'YDRequest.php' );
    YDInclude( 'YDDatabase.php' );
    YDInclude( 'YDFileSystem.php' );
    YDInclude( 'YDUtil.php' );
    require 'DrWeb_DownloadZaehler_Dateien.php';
    require 'DrWeb_DownloadZaehler_Konfig.php'; 
     
    // Class definition for the index request
    class DrWeb_DownloadZaehler extends YDRequest {
     
      var $id = null;
    	var $db = null;
     
      // Class constructor
      function DrWeb_DownloadZaehler($id=null) {
     
        /* Wenn keine oder eine leere Download-ID angegeben wurde, abbrechen
    	     Ein simpler Trick: Der "cast"-Operator (int) entfernt alle potenziell gefährlichen Inhalte
    	     Wir brauchen ja nur eine ganze Zahl. */
        if(isset($_GET['d']) && !empty($_GET['d'])) 
          $this->id = (int)$_GET['d'];
        else if($id === null)
          trigger_error("Keine oder leere Download-ID", YD_ERROR);   
        else
          $this->id = (int)$id;
     
        // Wenn die ID nicht in der Datei DrWeb_DownloadZaehler_Dateien.php "registriert" wurde, abbrechen
        if(!isset($GLOBALS['dl_ids'][$this->id]))
          trigger_error("Die ID {$this->id} wurde nicht registriert.", YD_ERROR);
     
        // Initialize the parent class
        $this->YDRequest();
     
        // Prüfen, ob Zugangsdaten zur Datenbank vorhanden sind.
        if(!$this->configOk())
          trigger_error("Datenbank-Zugangsdaten sind nicht vorhanden.", YD_ERROR);
     
        // Datenbank-Verbindung herstellen
        $this->db = YDDatabase::getInstance(
          $GLOBALS['db']['type'], $GLOBALS['db']['db'],
          $GLOBALS['db']['user'], $GLOBALS['db']['pass'],
          $GLOBALS['db']['host']
        );
      }
     
      // Prüft, ob die Voraussetzungen für dieses Script erfüllt sind
      function configOk() {
        return isset($GLOBALS['db']['user']) && !empty($GLOBALS['db']['user'])
               && isset($GLOBALS['db']['pass']) && !empty($GLOBALS['db']['pass'])
               && isset($GLOBALS['db']['table']) && !empty($GLOBALS['db']['table']);
      }
     
      // Gibt die Summe der Downloads aus. Das Script wird dann beendet. Aufruf mit /script.php?do=Count&d=ID
      function actionCount() {
        print($this->getCount());
        exit;
      }
     
      // Liefert die Summe der Downloads zu einer Download-ID. 
      function getCount() {
        return $this->db->getValue("SELECT dl_sum FROM {$GLOBALS['db']['table']} WHERE dl_id = {$this->id}");
      }
     
      // Liest eine Datei und gibt sie direkt aus, wenn sie gelesen werden kann.
      // Die HTTP-Header legen den Dateinamen fest und teilen dem Browser mit, dass ein Dateianhang folgt.
      function actionDefault() {
        $file = new YDFSFile($_SERVER["DOCUMENT_ROOT"] . $GLOBALS['dl_ids'][$this->id]);
     
        // Fehler ausgeben, wenn die Datei nicht lesbar ist
        if(!$file->isReadable())
          trigger_error(sprintf("Datei %s ist nicht lesbar, bitte Dateirechte anpassen.", $file->getBasename()), YD_ERROR);
     
        // Versucht, den Datensatz zu aktualisieren: logUpdate()
        // Bei Misserfolg existierte die Download-ID wohl noch nicht, also anlegen: logInsert()
        // Klappt das auch nicht, mit einer Fehlermeldung abbrechen
        // Im Normalfall existiert die ID aber und es muss nur einmal die Datenbank "angefasst" werden.
        if($this->logUpdate() < 1 && $this->logInsert() < 1)
          trigger_error("Fehler beim einf&uuml;gen einer neuen Download-ID.", YD_ERROR);
     
        // Datei an den Browser senden
        $file->download(null,true);
      }    
     
      // Versucht, in einem Schritt einen Datensatz zu aktualisieren.
      function logUpdate() {
        return $this->db->executeSql("UPDATE {$GLOBALS['db']['table']} SET dl_sum = dl_sum+1 WHERE dl_id = {$this->id} LIMIT 1");
      }
     
      // Registriert eine neue Download-ID in der Tabelle
      function logInsert() {
        return $this->db->executeInsert($GLOBALS['db']['table'], array('dl_id' => $this->id, 'dl_sum' => 1));
      }
    }
     
    (!isset($GLOBALS['proc']) || $GLOBALS['proc'] != false) && YDInclude( 'YDF2_process.php' );
    ?>


    Es gibt noch mehr, ihr werdet mir es hoffentlich sagen können, welche ihr noch braucht, ich habe (noch) keine Ahnung von php...

    EDIT:
    Die Datenbankdaten sind nicht richtig.

    Beitrag zuletzt geändert: 26.6.2011 21:15:47 von infinitysounds
  5. Hallo infinitysounds,

    ich gehe jetzt mal davon aus, dass die Datenbank korrekt eingerichtet ist.
    Um die Sache zum laufen zu bekommen musste ich Folgendes ändern:
    In der Datei dlcounter/lib/YD2Framework/YDF2_Init.php in Zeile 40 muss
    set_magic_quotes_runtime( 0 );
    durch
    ini_set('magic_quotes_runtime', 0);
    ersetzt werden.
    Die Anzahl sollte man dann mit
    http://www.infinitysounds.de/Template/dlcounter/DrWeb_DownloadZaehler.php?d=1
    also ohne '?do=count' abrufen können.
  6. Das Teil ist so extrem aufgeblasen... Total unnötig... Aber okay.. Ist ja auch schon 5 Jahre alt.

    Beitrag zuletzt geändert: 27.6.2011 21:10:07 von fabo
  7. Hallo fabo,

    (endlich ein Experte) kennst Du vielleicht eine gute alternative, die nicht so alt ist und die ein absolut Ahnungsloser einfach zum Laufen bekommt?
  8. Wenn die DoS Attacken enden, beginne ich mit meinen Tutorials in meinem Blog. Dann mach ich direkt mal nen Downloadzähler fertig - Ist ja nix großartiges.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!