Einzelnen Beitrag anzeigen

Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Unsichtbarer Counter?

  Alt 11. Apr 2005, 23:31
Ich glaube er will das komplett transparent haben. Ich habe das bei mir so gemacht (geht nur für Apache-Webserver):

Nehmen wir an der Ordner mit den ganzen Dateien heisst files. Diesen Ordner benennst du um in sagen wir mal realfiles. Dann erstellst du einen neuen Ordner mit dem Namen files und einer einzigen Datei .htaccess mit folgendem Inhalt:
Code:
RewriteEngine on
RewriteBase   /files/
RewriteRule   ^(.+)$ /download.php\?file=$1
Danach erstellst du nur noch die download.php im Stammordner, die den Counter erhöht und die richtige Datei aus realfiles dann an den Browser schickt. Bei mir sieht die download.php so aus:
Code:
<?php
  require "dblogin.php"; // provides mysql_login() which calls mysql_connect with the proper arguments
 
  if ((IsSet($_GET["file"])) && (file_exists("realfiles/" . $_GET['file'])))
  {
    $filename = "realfiles/" . $_GET["file"];
    $dbh = mysql_login();
    mysql_select_db("danny");
    $stats_query = "SELECT count FROM downloads WHERE file='" . $_GET['file'] . "'";
    $stats_result = mysql_query($stats_query);
    if (mysql_num_rows($stats_result) > 0)
    {
      $stats_array = mysql_fetch_assoc($stats_result);
      if ($stats_array['count'] !== null)
      {
        $stats_query = "UPDATE downloads SET count = count + 1 WHERE file='" . $_GET['file'] . "'";
        mysql_query($stats_query);
      }
    }
    mysql_close($dbh);
    header("Content-type: application/force-download");
    header("Content-length:" . filesize($filename));
    readfile($filename);
  } else {
    $host = $_SERVER["SERVER_NAME"];
    header("Location: http://$host/index.php");
  }
?>
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat