euh, les "referer" ça se bidouille. La solution me semble donc boiteuse, surtout pour un truc payant.
Pourtant, il en existe une de solution. Ça s'appelle
fpassthru() et c'est c'est du php ;-)
En deux mots :
- Tu rends tes dossiers remplis de contenu totalement hermétiques, pour ça une seule ligne suffit :
Deny to all
- Tu écris un script php dans un dossier accessible, lui. Ce script va, parès avoir vérifié la validité de l'accès,
ouvrir le fichier sur le serveur, et renvoyer tout son contenu (avec les headers appropriés) à la place de renvoyer une page html. Le tour est joué :-).
Voici un exemple de script php (attention, il ne faut AUCUN caractère hors des balises PHP, espaces y compris : comme le contenu envoyé est du binaire, ça ferait tout foirer) :
if ($fd = fopen ($fullPath, "rb")) {
$fsize =filesize($fullPath);
$fname = basename($fullPath);
if(function_exists('mime_content_type')){
$type = mime_content_type($content['filename']);
$ext = getExt($content['filename']);
}
header("Pragma: ");
header("Cache-Control: Public");
header("Content-type: ".$type);
header('Content-disposition: inline; filename="'.$nom_fichier.'.'.$ext.'"');
header("Content-length: ".$fsize);
header("Content-Transfer-Encoding: binaryn");
fpassthru($fd);
exit();
}
Si t'as des questions, n'hésite pas ;-). Si je ne réponds pas, envoie un mail^^