j'aimerai réalisé quelque chose mais je ne sais pas comment m'y prendre :
j'ai un dossier feuilles où j'ai des pdf à l'intérieur.
j'aimerai interdire l'accès à ce fichier aux personnes non connectées (variable $login et $mdp inexistantes) mais autoriser à la fois les personnes connectées ($login et $mdp existantes).
j'ai essayé avec avec un .htaccess avec "Deny from all" et en utilisant les header pour afficher les pdf mais sous Internet Explorer ça coince.
j'ai essayé avec les iframes mais ça coince aussi à cause d'une erreur -logique- 403 !
merci beaucoup de m'aider car je ne sais pas comment faire
Bon, en temps normal, si on a un document PDF à l'adresse http://mondomaine.fr/mondocument.pdf, le serveur le sert directement et sans contrôle puisqu'il n'est pas possible de faire intervenir une session PHP sans que ce ne soit du PHP.
* le client demande /mondocument.pdf
* le serveur lui renvoie /mondocument.pdf
Pour pouvoir (d'abord) utiliser cette session PHP afin d'autoriser ou non l'accès à ce document PDF, je suggère ici de rediriger (c'est purement interne ici), via la règle de réécriture, toute requête de demande de document PDF vers un script PHP. C'est ce dernier, alors, qui effectuera le contrôle d'accès en se basant sur les données de la session et l'affichera (readfile) si on y est autorisé.
* le client demande /mondocument.pdf
* le serveur exécute le script intermediaire.php (via la réécriture *.pdf => /intermediaire.php)
- si l'utilisateur est authentifié : le script lui affiche le contenu du document demandé
- sinon il est rejeté (erreur HTTP 403)
En effet, les moyens sont limités pour pouvoir se baser sur une session PHP :
* il faut soit un script PHP qui sert d'intermédiaire pour servir, ou non, le document
* soit s'arranger pour que les documents à protéger soient pris pour des scripts PHP (c'est bien moins trivial que le premier cas)
PS : l'authentification (création des variable de session - $_SESSION['id'] dans le code ci-dessus) c'est à un script, à part, qui n'est pas montré, de la réaliser.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli