Empecher l'accès à un dossier

johnjohn888888 -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,

Je viens de créer un système de commande en ligne.

Quand le client valide sa commande j'enregistre une ligne commande dans une bdd mysqlet enregistre la facture dans un dossier sur le serveur commande/"num de commande.pdf" et le lien dans la bdd.

Ensuite dans le compte client il ya la possibilité de visionner ces factures.

J'ai mis une fichier htaccess pour empêcher l'accès mais avec ce fichier il ne peut plus les visionner.

Donc en gros comment pourrais je faire pour qu'il puisse voir que ces factures et pas celle des autres?

Merci


A voir également:

4 réponses

tito23 Messages postés 318 Statut Membre 4
 
Il faut créer par exemple un tableau qui contient les factures et un lien vers la facture dans ton dossier en question, il faut utiliser les variables de session pour enregistrer le login du user et en chercher les factures et les mettre dans un tableau.
tito.
0
johnjohn888888
 
C'est ce que j'ai.

Dans le compte client il apparait toutes les factures du client et pas les autres avec un lien vers la facture dans le dossier.

Mais si il modifie dans l'url le numero de facture il tombe sur une facture qui ne lui appartient pas.

Pour empecher ca j'ai mis une fichier htaccess dans le dossier contenant toutes les factures mais avec se fichier il ne peut plus voir aucune facture meme les siennes
0
tito23 Messages postés 318 Statut Membre 4
 
Donc ce cas je pense que visualiser les factures en format pdf c'est pas la bonne solution.
0
jisisv Messages postés 3678 Statut Modérateur 935
 
La page qui va livrer le PDF est du genre:
   
<?php   
# tester p.ex $_GET["id"]   

$id = $_GET["id"];   
if (1 != $id)   
{   
 echo("Sorry, no access");   
}   
   else   
   {   
   $filename = "factures/client" . $id . ".pdf" ;   
   header("Content-Type: application/pdf");   
   readfile($filename);   
   }   
?>   

Tu interdis d'autre part l'accès au répertoire factures à tout utilisateur ( .htaccess , directive <Directory> dans le fichier de configuration idoine d'Apache...
Le mieux, c'est possible est de placer ces fichiers hors du DocumentRoot.

Johan
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0
johnjohn888888
 
Oui j'ai ca enfin du genre.

Pour l'instant mes documents sont dans /monsite/www/commande
j'ai essayé de les mettre dans /monsite/commande

Mais quel lien faut il mettre pour pouvoir les lires?
0
jisisv Messages postés 3678 Statut Modérateur 935
 
http:facure.php?id=$id_du_client connecté, où facrure.php contient (entre-aure) le code ci-dessus. Tu peux évidemment utiliser une requête POST .
0