PDF dans compte sécurisé
11 messages
• Page 1 sur 1
-

haderach - WRInaute impliqué

- Messages: 870
- Inscription: 26 Aoû 2004
PDF dans compte sécurisé
Bonjour,
J'ai un petit soucis.
J'ai des internautes qui ont des comptes perso. Ils peuvent uploader des fichiers pdf et les consulter à partir de leur compte perso (accessible par login et mot de passe).
Ses fichiers sont stockés sur le disque.
Mon problème :comment empécher l'internaute A de consulter les fichiers PDF de l'internaute B?
Le tout avec PHP et mysql...
Merci pour votre aide
J'ai un petit soucis.
J'ai des internautes qui ont des comptes perso. Ils peuvent uploader des fichiers pdf et les consulter à partir de leur compte perso (accessible par login et mot de passe).
Ses fichiers sont stockés sur le disque.
Mon problème :comment empécher l'internaute A de consulter les fichiers PDF de l'internaute B?
Le tout avec PHP et mysql...
Merci pour votre aide
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
Voici ce que je fais habituellement:
- lors de l'upload, donner un 'id' unique au fichier, le stocker dans un répertoire innaccessible via HTTP. Par commodité, je le renomme id.pdf
- lors de l'upload, insérer en base de donnée l'id de l'utilisateur et l'id du fichier
- pour accéder à un PDF, l'utilisateur devra passer par un fichier "dl.php" en passant en paramètre l'id du fichier
- vérifier en bdd s'il est bien l'utilisateur qui a envoyé le fichier
- si oui, lire le fichier en PHP (readfile...) et l'envoyer au navigateur avec les bons en-têtes.
Après tu peux rajouter la possibilité de conserver le nom original du fichier (stocker en bdd lors de l'upload, puis envoyer l'en-tête adéquat lors de la lecture du fichier)...
C'est une solution un peu plus lourde que si le download était direct, surtout pour les gros fichiers, PHP peut broncher...
- lors de l'upload, donner un 'id' unique au fichier, le stocker dans un répertoire innaccessible via HTTP. Par commodité, je le renomme id.pdf
- lors de l'upload, insérer en base de donnée l'id de l'utilisateur et l'id du fichier
- pour accéder à un PDF, l'utilisateur devra passer par un fichier "dl.php" en passant en paramètre l'id du fichier
- vérifier en bdd s'il est bien l'utilisateur qui a envoyé le fichier
- si oui, lire le fichier en PHP (readfile...) et l'envoyer au navigateur avec les bons en-têtes.
Après tu peux rajouter la possibilité de conserver le nom original du fichier (stocker en bdd lors de l'upload, puis envoyer l'en-tête adéquat lors de la lecture du fichier)...
C'est une solution un peu plus lourde que si le download était direct, surtout pour les gros fichiers, PHP peut broncher...
-

haderach - WRInaute impliqué

- Messages: 870
- Inscription: 26 Aoû 2004
FloBaoti a écrit:- si oui, lire le fichier en PHP (readfile...) et l'envoyer au navigateur avec les bons en-têtes.
Cette solution me convient parfaitement mais comment tu fais cette partie (le readfile et SURTOUT l'envoi au navigateur avec les bons entetes).
J'avais pensé utiliser fpdf. Mais tu sembles utiliser une autre solution. Tu peux me guider pour ta solution?
merci d'avance
- holmat
- WRInaute discret

- Messages: 175
- Inscription: 28 Nov 2007
Re: PDF dans compte sécurisé
haderach a écrit:Bonjour,
J'ai un petit soucis.
J'ai des internautes qui ont des comptes perso. Ils peuvent uploader des fichiers pdf et les consulter à partir de leur compte perso (accessible par login et mot de passe).
Ses fichiers sont stockés sur le disque.
Mon problème :comment empécher l'internaute A de consulter les fichiers PDF de l'internaute B?
Le tout avec PHP et mysql...
Merci pour votre aide
bonjour,
puisque tu as une base, tu ne peux pas stocker la liste des fichiers que l'utilisateur a uploadé dans une table ??
- FloBaoti
- WRInaute impliqué

- Messages: 755
- Inscription: 30 Avr 2006
haderach a écrit:Cette solution me convient parfaitement mais comment tu fais cette partie (le readfile et SURTOUT l'envoi au navigateur avec les bons entetes).
J'avais pensé utiliser fpdf. Mais tu sembles utiliser une autre solution. Tu peux me guider pour ta solution?
merci d'avance
C'est dans la doc de PHP, Ã la fonction header:
Example#7 Utilisation de header() pour générer un fichier de type PDF ou d'un autre type
- Code: Tout sélectionner
<?php
// Vous voulez afficher un pdf
header('Content-type: application/pdf');
// Il sera nommé downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// Le source du PDF original.pdf
readfile('original.pdf');
?>
-

haderach - WRInaute impliqué

- Messages: 870
- Inscription: 26 Aoû 2004
Super une bonne avancée.
MAIS, le fichier stocké sur mon disque n'est pas correctement lu. Acrobat me donne un problème.
lorsque je l'appele en direct pas de problème!
Une idée?
MAIS, le fichier stocké sur mon disque n'est pas correctement lu. Acrobat me donne un problème.
Adobe Reader n'a pas pu ouvrir downloaded[1].pdf, car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas été décodé correstement, par exemple).
lorsque je l'appele en direct pas de problème!
Une idée?
11 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Consultez la description détaillée des produits ou services de Google suivants : Google PDF Quick View
- Liste des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Google Browser TouchGraph
Description du TouchGraph Google Browser (outil externe) : il s'agit d'un outil graphique permettant de visualiser des sites similaires (selon Google). On peut sauter de site en site, et se rendre compte facilement des communautés de sites, ou des nébuleuses de sites traitant du même sujet.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


