Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#1

[PHP] Downloadscript funktioniert nicht mit jeder Datei

  Alt 11. Sep 2009, 12:04
Hi,
ich möchte die Downloads meiner Programme zählen lassen, die URLs sollen aber weiterhin auf die Original-Datei zeigen z. B. http://www.cap-systems.com/files/coo...5.10_setup.exe

Also hab ich mir mit einer htaccess-Datei eine mod_rewrite Regel definiert die eine PHP-Datei aufruft, den Counter zählen lässt und dann die Datei zum download anbietet. Das sieht so aus:

.htaccess
Code:
RewriteRule ^files/cookiecrumbler/(.*)$ /includes/download.php?filename=cookiecrumbler/$1 [L]
download.php
Code:
<?php

  $allowedfileexts = array('exe', 'zip', '7z', 'dll', 'dat', 'xml');

  if(file_exists('/www/htdocs/XXX/files/' . $_GET['filename']))
  {
    $fileinfo = pathinfo('/www/htdocs/XXX/files/' . $_GET['filename']);
    if(in_array(strtolower($fileinfo['extension']), $allowedfileexts))
    {
      header('Content-type: application/' . $fileinfo['extension']);
      header('Content-Disposition: attachment; filename="' . $fileinfo['filename'] . '.' . $fileinfo['extension'] . '"');
      readfile('/www/htdocs/XXX/files/' . $_GET['filename']);

      //BEGIN: chCounter
      $chCounter_visible = 0;
      $chCounter_status = 'active';
      include('/www/htdocs/XXX/includes/chcounter/counter.php');
      //END: chCounter
    }
  }
  else
  {
    die('File not found!');
  }

?>
Leider wird der Zähler durch den oben angegebenen Link nicht erhöht. Rufe ich das Script direkt auf mit z. B. download.php?filename=cookiecrumbler/CookieCrumbler_1.5.10_setup.exe erhalte ich eine leere Seite die unendlich lange lädt. Rufe ich das Script aber mit einer XML-Datei als Parameter auf funktionierts: download.php?filename=pad/cookiecrumbler.xml

Was ist an der mod-rewrite-Regel und der PHP-Datei falsch?
  Mit Zitat antworten Zitat