En même temps, il t'a donné toute la marche à suivre.
En détaillant un peu plus :
1. Tu crées une table downloads :
id CHAR(32) PRIMARY KEY,
path VARCHAR(255),
date_validite / n_telechargements_autorises / ...
2. tu stockes tes fichiers dans un dossier qui n'est pas accessible via le serveur HTTP (soit en mettant le dossier ailleurs que le site, soit avec un htaccess sous apache, ...)
3. à l'envoi du mail :
tu crées un id aléatoire avec md5 par exemple
tu insères dans ta base données un enregistrement avec l'id en question et le chemin du fichier (attention aux doublons d'id ! => gestion des exceptions)
tu envoies le mail avec un lien vers http://tonsite/script_de_telecharg [...] _ci_dessus
4. dans le script de telechargement
- tu recupères l'id en paramètre
- tu recupères l'enregistrement en base correspondant
- tu verifies la validite (date, nombre de telechargements)
- tu incrementes en base le nombre de telechargements (si tu fais une restriction dessus), ou tu supprimes l'enregistrement pour empecher de retelecharger, ...
- tu envoies les headers correspondants au type de fichier
- tu envoies le fichier avec readfile
5. tu fais un script de suppression des trop vieux enregistrements dans la base.
Si tu peux, tu appelles ce script dans un cron, sinon tu peux le faire à chaque téléchargement, ou sur une action de l'admin.
EDIT : tu peux aussi utiliser md5( uniqid() ) pour générer un id aléatoire de 32 caractères ...
Message édité par Paulp le 03-12-2010 à 12:00:56