Ciao a tutti,

ho una piccola domanda, come faccio a proteggere i link diretti sul mio server?

per esempio se uno fa http://www.test.com/file/file.zip riesce a scaricarlo

io una pagina internet protetta da user e pass e solo gli utenti registrati possono scaricare, come posso fare??

ho trovato questo:

Codice PHP:
Se deteniamo il controllo completo del server su cui gira la nostra applicazione (quindi non si è in hosting), è possibile salvare i file dati in una cartella superiore alla root del Web server (root che come noto è solitamente chiamata htdocs o wwwroot), dato che al browser è intrinsecamente impedito l'accesso a cartelle ad essa superiori.

A questo punto: per permettere all'
utente di scaricare un fileanziché un semplice link HTML allo stessodovrà essere richiamato uno script PHP che provveda ad inviare il file al client in HTTPAd esempio:

[
url="scarica_file.php?id_file=..."]Scarica il file[/url]
oper gli amanti del JavaScript:

[
url="#."]Scarica il file[/url]
Il codice per lo scaricamento del file dati è il seguente (valido per il download di uno ZIPcompatibile sia con Mozilla Firefox che con MS Internet Explorer):

header("Content-Type: application; name=".$nome_file);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$dimensione_file);
header("Content-Disposition: inline; filename=".$nome_file);
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: private");
header("Pragma: public");
 
readfile($percorso_assoluto.$nome_file); 
io ho creato una pagina index.php con la lista dei file :

Codice PHP:
<?php 
$host 
"localhost";
$user "xxx";
$pass "xxx";
$dbase "tslpsy";

$conn mysql_connect($host$user$pass) or die (mysql_error());
mysql_select_db($dbase$conn) or die (mysql_error());

$sql "SELECT * FROM tb_store";
$query mysql_query($sql) or die (mysql_error());

while(
$result mysql_fetch_assoc($query)) {
$nome_file $result['st_file'];
$id $result['st_id'];
echo 
"[url='scarica_file.php?id_file=$id']$nome_file[/url]
"
;
}
?>
e una pagina scarica_file php :

Codice PHP:
<?php 

header
("Content-Type: application; name=".$nome_file);
header("Content-Transfer-Encoding: binary");
//header("Content-Length: ".$dimensione_file);
header("Content-Disposition: inline; filename=".$nome_file);
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: private");
header("Pragma: public");
$percorso_assoluto "/cartella/file/";
readfile($percorso_assoluto.$nome_file);
?>

Ma non mi quadra come funziona????