Salve ho un piccolo problema con un file che permette agli utenti iscritti di scaricare dei file..
Il punto è questo che nella pagina che fa vedere i file all'interno della cartella funziona.. Ma quando si clicca sul file per scaricarlo dice che è inesistente...
vi posto il file così mi potete aiutare
Codice che crea la lista chiamata list.php:
Codice che permette o meno di scaricare.. cn verifica log, chiamato get.phpcodice:<?php session_start(); ?> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" align="center">MP3</td> </tr> <tr> <td><div align="center">Episodio</div></td> <td><div align="center">Dimensione</div></td> <td><div align="center">Mirrors</div></td> </tr> <?php function getmicrotime() { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } $inizio = getmicrotime(); //Sarà utile per vedere in quanti secondi processa tutto lo script. //mi evito tutte le cose che forse voi dovreti piazzare.. ma questo.. è il meno $configurazione = @include("includes/db.php"); if($configurazione == false) { //Non riesce ad aprire il file di configurazione dunque. non può partire poichè appunto, non conosce la directory. die("Impossibile inizializzare il programma"); } //Prendiamoci tutti i file della cartella. if ($handle = opendir($eps_dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $encode = base64_encode($file); $a1=filesize("$eps_dir/$file"); $a2=$a1/1024; $a3=$a2/1024; $a4=intval($a3); echo "<tr><td align='center'>".$file."</td><td align='center'>".$a4." MB</td><td align='center'><a target=\"_blank\" href=\"down/get.php/$fakerize/$encode\">Download</a></td></tr>"; } } closedir($handle); } ?> </table>
premetto che nel db.php c'ècodice:<?php session_start(); require("../includes/db.php"); include("../includes/functions.php"); // Carichiamo qualche variabile per il controllo del tempo °__° $now_time = time(); $dl_limit = $eps_limit*60; $timeout = $now_time+$dl_limit; // Prendiamo la directory per scaricare ^^ $dl_dir = explode("/",$eps_dir); // Connetto al mysql $connessione = @mysql_connect($db_host,$db_user,$db_pass); @mysql_select_db($db_name,$connessione); //Questo è il file più importante... $cropped = explode("/", $_SERVER['PHP_SELF']); if($cropped[count($cropped)-2] == $fakerize) { $file = $cropped[count($cropped)-1]; $verofile = base64_decode($file); if(isset($_SESSION[username])) { define("OK", true); } else if(isset($_SERVER['PHP_AUTH_USER'])) { $username = $_SERVER["PHP_AUTH_USER"]; $password = md5($_SERVER["PHP_AUTH_PW"]); //vediamo se è un vero utente o ci sta inculando di brutto. $query = "SELECT * FROM $table_reg WHERE username ='$username' AND password ='$password'"; //modificala secondo le tue esigenze if(mysql_fetch_row(mysql_query($query))) { define("OK", true); } } else if(!isset($_SERVER['PHP_AUTH_USER'])) { header("WWW-Authenticate: Basic realm=\"AMWORLD.IT\""); header("HTTP/1.0 401 Unauthorized"); redirect('javascript:window.close();', 1); die("Impossibile scaricare!"); } if(defined("OK")) { //inviamogli il file che tanto bramava! //ma prima... esiste?! if(is_file($dl_dir[1]."/".$verofile)) { $control = @mysql_query("SELECT dl_timeout FROM $table_reg WHERE username='$username' OR username='$_SESSION[username]'",$connessione); $dl_timeout = mysql_fetch_row($control); if ($dl_timeout[0] >= $now_time) { die("E' possibile scaricare solamente un file ogni $eps_limit minuti"); } elseif($dl_timeout[0] < $now_time) { $set_timeout = @mysql_query("UPDATE $table_reg SET dl_timeout='$timeout' WHERE username='$username' OR username='$_SESSION[username]'",$connessione); mysql_close(); header("Content-Disposition: attachment; filename = $verofile"); header("Content-Transfer-Encoding: binary"); readfile($dl_dir[1]."/".$verofile); } } else { redirect('javascript:window.close();', 1); die("Il file da te richiesto non esiste"); } } else { unset($_SERVER["PHP_AUTH_USER"]); unset($_SERVER["PHP_AUTH_PW"]); redirect('javascript:window.close();', 1); die("Non sei loghinato."); } } else { redirect('javascript:window.close();', 1); die("Errore. La cartella non esiste."); } ?>
Inoltre giusto per farci capire nell cartella down ci sono i file get e list..all'interno di down c'è un altra cartella kiamata MP3codice:$eps_dir = "down/MP3"; $eps_limit = 10; $fakerize = base64_encode("togoooo").md5($eps_dir);
spero che risuciate ad aiutarmi.. grazie

Rispondi quotando