5568 sujets

Sémantique web et HTML

Bonjour les amis je voulais savoir si il était possible de limiter le nombre de téléchargement d'un fichier via un lien lambda sur une page php (no cms, no motherf*** Smiley lol ) sans biensure utiliser Mysql et une BDD pour stocker les IP

ce que j'aimerai c'est proposer un fichier et le limiter son téléchargement à une fois, ou bien laisser le lien actif pendant un certain nombre d'heures à partir du moment ou il est mis à disposition !!!
Où dans l'idéal, j'ai bien dit l'idéal, proposer un lien de téléchargement qui devient invalide à partir du moment où la personne à cliquer sur le lien ou que le téléchargement s'est lancé ou terminé.


je ne sais pas quoi vraiment chercher sur google car je tombe souvent sur des plugin comme Remository pour Joomla ou autre. Si vous avez ne serai-ce qu'une idée, je suis preneur Smiley murf


encore merci les amis Smiley cligne
Modifié par kodjoed (13 Sep 2014 - 05:52)
Salut,

tu vas être obligé de stocker quelque part l'IP du client, ou du moins le fait que tel client a déjà téléchargé le fichier, donc à stocker dans un fichier texte, xml, json, peu importe, ou, mais apparemment tu ne le veux pas, une base de données Smiley lol Je propose même pas la solution du cookie qui est inutile. Sinon, dans ton .htaccess (si tu es sûr du apache), tu peux utiliser RewriteCond sur une date, regarde ça en bidouillant tu devrais avoir ce que tu veux Smiley smile
merci Floreo,

en fait ce que je ne veux pas c'est construire une base mysql avec BDD mais si je peux stocker l'IP dans un fichier texte, xml, json, je peux concentrer mes recherches dans ce sens car je n'y connais pas grand chose encore Smiley smile


Je suis totalement d'accord avec toi sur la faiblesse du cookie Smiley langue , je vais regarder du coté du htaccess (même si je ne suis pas sur Apache) mon lien sera présent sur une page unique tu pense que je peux modifier le fichier htaccess seulement pour cette page ?
Pour le .htaccess, si ton fichier s'appelle toto.txt, un truc du genre interdit son accès


RewriteEngine On
RewriteCond %{REQUEST_URI}	^/toto.txt$
RewriteRule .* - [F,L]


Ne reste plus qu'à adapter pour ajouter la condition pour ta date Smiley smile
En fait pour être plus clair Smiley cligne

je dois crèer une page avec un lien vers un fichier zip et j'aimerai limiter le téléchargement de se zip soit dans le temps soit dans le nombre de téléchargement


admettons que le pdf soit pdf2014.zip



Vous pensez que je peux y arriver en bidoullant le fichier htaccess bien que je ne soit pas sur apache ?
Quel est le serveur web que tu utilises? .htaccess ne fonctionne qu'avec Apache.
Le lien vers le fichier sera une URL, donc tu pourras le matcher dans ton .htaccess comme je t'ai dit (si tu es bien sur Apache).
Si tu veux utiliser PHP et l'histoire d'enregistrement des IPs, tu vas être obligé de rendre impossible l'accès au fichier directement, et d'envoyer le contenu du fichier depuis le script PHP. Cela te permet de vraiment contrôler l'accès au fichier par qui et quand.
Hello Mister Floreo je suis actuellement chez ovh et mon objectif est de créer plusieurs pages avec un lien direct à l'interieur de chacune d'elle : <a href="http://www.monsite.com/index//leo/pdf2014.zip>PDF<a/>


si je comprend bien il faut que je me rabatte sur la solution d'enregistrement des IP,
ce que j'aimerai c'est créer un lien disponible pendant certains jours et restreint à un nombre de téléchargement et d'ip (genre un lien valide 10 jours disponible au téléchargement 10 fois pour 3 ip diffèrentes)

si ça c'est possible (je sais que tout est possible) c'est au top



merciiiiii Smiley lol
Modifié par kodjoed (14 Sep 2014 - 18:29)
OVH en mutu de base c'est du Apache et je ne pense pas qu'ils interdisent le mode Rewrite, tu peux donc faire comme dit précédemment avec ton .htaccess, après cela ne résous pas tout, là ça résoudrait le problème de date mais pas la limitation de téléchargement.

Pour la soluce PHP, et bien pense d'abord au traitement à faire pour l'instant pas de code, que de "l'algorithmie", pose ce que tu dois faire, tu viendras au code plus tard.

Bien entendu c'est possible, mais personne ne te le fera, on t'aidera juste Smiley smile
Salut Floreo

Ok je vais donc commencer mes recherche sur le mod_rewrite et essayer de mettre ça sur le fichier htaccess à partir des infos que tu m'as donné Smiley smile sache que j'aurai plusieurs pages différentes qui devront subir les même règles mais pas en même temps !!!

le top serait d'avoir une page avec une limite de validité dans le temps (une fois le temps écoulé, la page renverrai automatiquement sur la page d'accueil) mais aussi avec un maximum de 5 Ip et si c'est possible avec une limite de 25 téléchargements Smiley smile


bien entendu je ne cherche pas à ce que l'on le fasse pour moi, j'aimerai juste savoir quoi chercher sur google pour limiter le téléchargement mais aussi le nombre d'Ip sur la page en question Smiley smile




je ne sais comment te remercier Floreo Smiley langue
Modifié par kodjoed (15 Sep 2014 - 02:46)
Salut,

pas de soucis, c'est le but d'un forum, on a tous besoin d'aide à un moment Smiley smile

Laisse tomber l'histoire de la rewriterule, tu vas te galérer pour un résultat peu probant.

Il va falloir placer tes fichiers dans un dossier non web, donc non accessible par ton serveur web.

Dans ton script PHP, tu peux, en fonction du fichier demandé faire un test de date en premier lieu, regarde du côté de la fonction date de PHP. if($date_courante > $date_limite) je redirige vers l'accueil (regarde du côté de la fonction header).

Pour les IPs c'est plus complexe, tu peux faire un fichier texte qui contiendra, le nom du fichier téléchargé, l'IP de la personne ayant déjà téléchargé le fichier et un entier qui contient le nombre de téléchargements déjà effectué par la personne en question (c'est pas optimum, mais bon ce sera suffisant pour ce que tu as à faire). Pour ça regarde du côté de file_get_contents et file_put_contents.

Je pense que tu peux déjà implémenter le blocage par date, tu pourras rajouter l'autre couche après Smiley smile

P.S: ce n'est qu'une proposition, pas forcément le plus adapté ou performant, mais je pense que tu débutes un peu, ça t'apprendra pas mal de trucs Smiley smile