Condition un peu particulière avec htaccess!

Fermé
Axelle - 21 janv. 2009 à 17:55
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 21 janv. 2009 à 21:12
Bonjour à toutes et tous,

Voilà plusieurs heures que j'arpente internet à la recherche d'une syntaxe htaccess qui colle à mon besoin et j'ai du mal à trouver mon bonheur, aussi peut-être l'un(e) d'entre vous pourra m'aider car j'ai un peu de mal avec ce langage!

Voici la situation :

Un backoffice dans un sous répertoire avec accès géré sous php+BDD (pas de htaccess+htpassword) : www.monsite/backoffice/

Un autre sous-repertoire avec des docs PDF censés être réservés aux personnes loggés sur le backoffice :
www.monsite/backoffice/docs/

Le problème étant évidement qu'une personne se désinscrivant du backoffice (ou quelq'un connaissant l'url direct du PDF) peut récupérer les pdf en tapant bêtement l'adresse www.monsite/backoffice/docs/pdf_1.pdf

La piste que je suis est un htaccess à placer dans le répertoire www.monsite/backoffice/docs/ mais encore faut-il le rédiger correctement! Quelqu'un pourrait m'aider? Merci d'avance :-)

Axelle

3 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
21 janv. 2009 à 18:00
salut,

en redirigeant "www.monsite/backoffice/docs/pdf_1.pdf " vers "www.monsite/backoffice/docs/index.php?fichier=pdf_1.pdf"

dans le "index.php" tu vérifies si le visiteur est logué.
si oui tu ouvres le fichier et le renvoie.

ça collerait ?
après faut trouver les fonctions qui vont avec !
-:o)
0
Merci pour cette réponse ultra-rapide!

J'aime ton idée mais ne va-t-elle pas débouler sur une boucle infinie?

Si l'internaute est enregistré et que je lui accorde l'accès via un header redirect, cela va immanquablement le rebasucler vers l'index, et encore, et encore, non?

Axelle
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
21 janv. 2009 à 18:15
Si l'internaute est enregistré et que je lui accorde l'accès via un header redirect
ben justement l'idée c'est pas de le rediriger mais d'ouvrir le fichier en binaire et de lui balancer le flux, comme ça il reçoit le fichier direct.

je regarde comment ouvrir et envoyer le contenu d'un fichier.
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
21 janv. 2009 à 21:12
$fichier="fichier.pdf";
$fp = fopen($fichier,"r" );
$buff = fread($fp,filesize($fichier));
header("Content-Type: application/x-octet-stream\n" );
header( "Content-Disposition: attachment;filename=$fichier" );
header('Pragma: no-cache';);
header('Expires: 0';);
echo $buff;
fclose($fp); 

et hop, le fichier est envoyé au navigateur qui propose le téléchargement !
source

dis nous si ça fonctionne, moi aussi ça devrait me servir bientôt !
-;o)
0