superchinois
Messages postés64Date d'inscriptionvendredi 14 décembre 2001StatutMembreDernière intervention19 juin 2010
-
8 nov. 2007 à 00:07
superchinois
Messages postés64Date d'inscriptionvendredi 14 décembre 2001StatutMembreDernière intervention19 juin 2010
-
8 nov. 2007 à 12:19
Salut à tous
Je n'ai pas d'idée concernant la façon de procéder pour un système que je veux mettre en place : je voudrais que lorsque mon utilisateur est connecté (avec variables de session), il ne puisse télécharger qu'une seule fois un fichier zip présent sur www.mondomaine.com/monzip.zip, avec donc les contraintes suivantes :
- S'il ne s'est pas authentifié : pas d'accès au téléchargement
- Si authentifié mais pas encore téléchargé : accès au téléchargement
- Si authentifié et déjà télécharger une fois : pas d'accès au téléchargement.
Voilà j'espère avoir été clair, j'attends vos propositions avec impatience. Merci à tous...
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 8 nov. 2007 à 11:50
Salut,
Pour envoyer le contenu du fichier au navigateur : http://www.php.net/manual/fr/function.readfile.php Pas besoin de fopen et tout le tremblement, cette fonction se charge de l'ouverture, de la lecture et de la fermeture du fichier ;)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 8 nov. 2007 à 00:35
Salut,
Sans rentrer dans les détails techniques (je te laisse implémenter ça), voici comment je ferais :
- table membres dans ma base de données.
- table avec les téléchargements que je propose
- table de liaison membre-téléchargement
En gros, quand un membre a téléchargé le zip, j'enregistre dans la table de liaison l'id du membre et l'id du téléchargement.
Quand un membre veut télécharger un fichier, voici ce qui se passerait :
- vérification de la présence du couple (id_membre, id_téléchargement) dans la table de liaison
- si le couple n'est pas présent, je lui propose le téléchargement
- si le couple est déjà présent, c'est que ce membre a déjà téléchargé ce fichier. Je lui dit qu'il faut pas pousser mémé dans les orties et l'invite à composer le 0892..... à 250000 dollars la seconde pour y avoir accès une nouvelle fois
Le téléchargement doit pouvoir être contrôlé. Afficher un lien direct une fois ne dit pas que la personne l'aura téléchargé une fois, ni ne l'empêche de le télécharger plusieurs fois. Alors le lien est vers un script php qui prend en paramètre GET l'id du téléchargement.
Le script en question récupère dans la table des téléchargements le chemin du fichier à télécharger (le fichier peut ainsi ne pas être directement accessible depuis le net, soit parce qu'il n'est pas dans l'arborescence de publication, soit parce que le répertoire est protégé par un .htaccess contenant DENY FROM ALL. Le script php lit le fichier et le renvoie vers le navigateur. Avant de se terminer, il insère dans la table de liaison l'id du membre avec l'id du téléchargement. Ce qui fait qu'avec le même lien, si l'utilisateur clique à nouveau dessus, il se verra refuser le téléchargement.
superchinois
Messages postés64Date d'inscriptionvendredi 14 décembre 2001StatutMembreDernière intervention19 juin 2010 8 nov. 2007 à 09:19
Re,
Merci pour l'info... la première partie ne me pose pas de problèmes, je l'avais imaginé ainsi. Mais la partie qui m'intérresse, c'est justement le "Le script php lit le fichier et le renvoie vers le navigateur"... je vois bien comment lire le fichier (fopen je pense), mais comment le rediriger vers le navigateur ? merci d'avance...