Időzóna: (GMT +1 óra) RSS - hozzászólások

Letöltés kezelés

Szerző
Üzenet
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1538
Hozzászólás Elküldve: 2008.04.04. 10:43    Hozzászólás témája: Letöltés kezelés
Hozzászólás az előzmény idézésével
Sziasztok!
Abban kérném a segítségeteket, hogy van egy letöltés kezelő oldalam, ami egy adatbázis táblából táplálkozik, és elvileg számolnia kéne a letöltéseket. De nem teszi.

A kód:

Kód:


function download_file($file)
{
      global $db;
     
      if ($fp = fopen($file, 'rb'))
      {
               header("HTTP/1.1 200 Ok", true, 200);
               header('Content-Type: application/octet-stream');
               header('Content-Disposition: attachment; filename="' . basename($file) . '"');
               header('Last-Modified: ' . date("D, j M Y G:i:s T", filemtime($file)));
               header('Accept-Ranges: bytes');
               header('Content-Length: '. filesize($file));
               while (!feof($fp))
               {
                      echo(fread($fp, 1024));
               }
               fclose($fp);

               $sql = "UPDATE " . $table_prefix . "tracks SET download_number = download_number + 1 WHERE file='$file'";
               if( !($result = $db->sql_query($sql)) )
               {
                    message_die(CRITICAL_ERROR, "Nem sikerült lekérni a dalokat!", "", __LINE__, __FILE__, $sql);
               }
      }
      else
      {
               error_server();
      }
}

$file = $_GET['file'];
if(isset($file))
{
      if ($file == basename(__FILE__))
      {
            error_forbidden();
      }
      else if (!file_exists(dirname(__FILE__) . "/mappa/" . $file))
      {
            error_notfound();
      }
      else
      {
            download_file(dirname(__FILE__) . "/mappa/" . $file);
      }
}


Elötte a szokásos oldalkezdő kódok a phpBB-ből és egy-két hibakezelő függvény.

A segítségeteket előre is köszönöm.
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2807
Hozzászólás Elküldve: 2008.04.04. 12:52    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Az SQL parancs valami ilyesmi lesz:

Kód:

UPDATE prefix_tracks SET download_number = download_number + 1 WHERE file='elérésiút/mappa/fájlnév.kit'
Nem ismerem az adatbázis táblád felépítését, de szerintem a fájlnév elérési út nélkül szerepel, így lefut ugyan az SQL parancs, de nem talál a feltételnek megfelelő sort, ezért nem frissít semmit.

Próbáld meg úgy, hogy alulról a harmadik sort átírod erre:

Kód:

download_file($file);
és a függvényen belül bővítgeted elérési útakkal a megfelelő helyeken (pl. dirname(__FILE__) . "/mappa/" . filemtime($file) stb.), vagy $file2=dirname(__FILE__) . "/mappa/" . $file); és onnantól azt használod, de ezt már a fantáziádra bízom.
_________________
Kérlek, privát üzenetben ne kérj segítséget olyan kérdéssel kapcsolatban, aminek a fórumon a helye!

Felhasználó profiljának megtekintése Privát üzenet küldése
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1538
Hozzászólás Elküldve: 2008.04.04. 17:12    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Kössz a segítséget Marcee!
Még bekellett raknom minden lekérdezés után a $db->sql_freeresult($result) kódot, és így már sikerült.
:D
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés