cs_pendemonium
Messages postés11Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention 6 mars 2004
-
19 oct. 2003 à 02:21
cs_jamel
Messages postés7Date d'inscriptionlundi 29 juillet 2002StatutMembreDernière intervention27 juillet 2006
-
20 oct. 2004 à 13:10
Bonjour,
Qui peut resoudre mon probleme :
je réalise un site ou certains fichiers peuvent être téléchargement. Cependant apres avoir cliqué sur le fichier a telecharger je veux qu'une fenetre apparaisse en demandant le login et le mot de passe (ceux ci se trouveront dans une bibliotheque) suivant la réponse le fichier pourra etre enregistre.
Bref la meme chose qu'ici, quand je veux telecharger une source on me demande mon nom utilisateur. Merci pour vos réponses
cs_pendemonium
Messages postés11Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention 6 mars 2004 20 oct. 2003 à 00:02
bONJOUR?
Je veux utiliser un langage de programmation. Comme je suis super novice je ne savais même pas qu'on pouvait programmer son serveur web pour le faire, c'est dans ces moments que je vois tout ce que dois encore apprendre
cs_Metrox
Messages postés267Date d'inscriptionjeudi 19 septembre 2002StatutMembreDernière intervention 8 septembre 2013 20 oct. 2003 à 13:21
Tu peux faire un truc dans ce genre (en cfm):
<cfif IsDefined('form.login')>
<cfquery name="query" datasource="tadb">select * from login where login #form.login# and password #form.password#
</cfquery>
norbs33
Messages postés3Date d'inscriptiondimanche 2 novembre 2003StatutMembreDernière intervention 3 décembre 2003 3 déc. 2003 à 01:47
Le code fonctionne sûrement, par contre ce n'est pas suffisant pour sécuriser des téléchargements de fichiers non cfm : quelqu'un qui connaît un lien direct vers un fichier doc pourra le télécharger depuis ton site.
Une méthode que j'ai utilisée pour gérer cela est d'utiliser un fichier cfm qui fait un cffile sur le fichier à télécharger (ce fichier étant hors de l'arborescence Web), et met à jour le content-type (cfheader) suivant le type de fichier lu.
Un autre problème est qu'il te faut conserver dans une variable de session (ou un cookie) le fait que l'utilisateur est identifié pour lui éviter d'avoir à taper tt le temps ses login et password.
cs_pendemonium
Messages postés11Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention 6 mars 2004 3 déc. 2003 à 09:50
Bonjour,
je te remercie pour cette précision, penses tu que si je mets une page htpaccees dans mon répertoire cela n'est pas plus simple ?
Concernant les cookies ce n'est pas vraiment un problème, j'avais prévu de les programmer de toute façon.
Par contre penses tu qu'il soit possible que suivant les mots de passe utilisés la liste des fichiers à télécharger soit différente. Je mets dans une base de données les différents chemins est nom de fichier, un mot de passe et une requête qui en fonction du mot de passe m'affiche la liste des téléchargement possible ?
cs_Metrox
Messages postés267Date d'inscriptionjeudi 19 septembre 2002StatutMembreDernière intervention 8 septembre 2013 3 déc. 2003 à 13:13
Ce que tu peux faire, c'est faire un <cffile action="copy"> et quand c fait, le fichier est téléchargeable et quand la session expire, alors, tu supprimes le fichier que tu as copié dans ton wwwroot si ta iis...
ce que tu peux faire pr ta liste, c'est tu crées une table appelée fichiers
et dedans tu mets une colonne nom, une colonne fichier et une colonne droit
si droit=1
<cfquery="maquery">
select * from fichiers where droit=1
</cfquery>
<cfoutput query="maquery">
<cffile action="copy" source="#fichier#" destination="C:Inetpub:wwwroot:#nom#">
#nom# </cfoutput>
Ya ptet des fautes!
et tu crées une variable de session et tu lui dit que quand sa expire tu vires le fichier...
norbs33
Messages postés3Date d'inscriptiondimanche 2 novembre 2003StatutMembreDernière intervention 3 décembre 2003 3 déc. 2003 à 16:18
Hello,
La solution de metrox est Ok pour avoir une liste de fichiers téléchargeables pour un droit donné (et non pas un mot de passe qui doit pouvoir être changé par l'utilisatreur), chaque login étant associé à des droits.
Par contre le fait de copier les fichiers dans l'arbo Web à la demande ne me semble pas une bonne idée : pendant toute la session de l'utilisateur, les fichiers seront dispos pour quiconque connaît l'URL. De plus en cas de crash du serveur, ou de reboot, les fichiers de l'arbo Web ne seront pas nettoyés (du poins pas automatiquement).
Mettre une page httpaccess ne fonctionne pas sur IIS (du moins à ma connaissance) et le problème est que les fichiers httpsacces sont "statiques", càd ne dépendent pas directement d'une BDD.
Pour être plus clair, la solution que je te propose est la suivante (marche pour des fichiers word, sinon changer la ligne cfcontent suivant le type de fichier à télécharger). Attention ce code n'est pas testé, il y a peut-être des bricoles à remettre en forme :
Dans la page listeFichier.cfm :
<cfquery="maquery">
select nom from fichiers where droit=#droit#
</cfquery>
<cfoutput query="maquery">
[download.cfm?fichier=#urlencodeformat(nom)# #nom#]
</cfoutput>
Dans la page download.cfm :
<cfset chemin = "c:\telechargement">
<cfquery="maquery">
select count(nom) from fichiers where droit=#droit# AND nom=#url.fichier#
</cfquery>
<cfif maquery.recordcount neq 0>
<!--- OK --->
<cffile action="readbinary" file="#chemin#/#nom#" variable="contenu">
<cfheader name="Content-Disposition" value="filename="+#nom#>
<cfcontent type="application/msword">
<cfoutput>#contenu#</cfoutput>
<cfelse>
Ce site est sécurisé. </cfif>
norbs33
Messages postés3Date d'inscriptiondimanche 2 novembre 2003StatutMembreDernière intervention 3 décembre 2003 3 déc. 2003 à 16:50
D'ailleurs y'a un bug, je corrige :
<cfquery= "maquery">
select count(nom) from fichiers where droit=#droit# AND nom=#url.fichier#
</cfquery>
<cfif maquery.recordcount neq 0>
devient
<cfquery="maquery">
select count(nom) ]AS compte from fichiers where droit =#droit# AND nom=#url.fichier#
</cfquery>
<cfif maquery.compte neq 0>