Bonjour,
J'aimerais que lorsqu'une personne s'inscrit sur le formulaire et qu'il remplit le mot de passe.
Le mot de passe et le nom de l'utilisateur s'inscrive dans le fichier .htpassword.
Si quelqu'un pouvait m'aider, merci
Bonne journée
Bonjour,
J'aimerais que lorsqu'une personne s'inscrit sur le formulaire et qu'il remplit le mot de passe.
Le mot de passe et le nom de l'utilisateur s'inscrive dans le fichier .htpassword.
Si quelqu'un pouvait m'aider, merci
Bonne journée
Salut,
On utilise plutôt un système d'authentification par session avec enregistrement des identifiants en bdd pour créer ce genre de fonctionnalités.
mais j'ai n système d'authentification pour l'espace membre avec des login et mot de passe dans la base de données mais pour porteger les documents j'ai utilisé .htaccess et .htpassword...
Tu peux protéger tes documents (photos pdf etc) dans un répertoire avec .htaccess et les faire afficher ou les proposer en téléchargement avec php avec des header uniquement pour les membres authentifiés. Cela t'éviteras la problématique du .htpassword qui est trivial mais pas convivial ni pratique à administrer.
Oui ça à l'air bien ceci comment je dois procéder pour les proposer en telechargement avec des header uniquement pour les membres?
C'est une condition If {} else ..?
Bonne journée
Bah oui tu déclare une variable de session lors de l'authentification, par exemple $_SESSION['login'], et tu t'en sert pour autoriser ou non le téléchargement d'un fichier qui est situé dans un dossier protégé par un .htaccess (qui contient la mention "deny from all").
Tu as un exemple de téléchargement ici. Donc le code php de ta boite de téléchargement pourrait être :
load_fichier.php
Tu peux appeler ce script depuis une autre page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <?php session_start(); if(isset($_SESSION['login'])) { $dossier_protege = 'Test/'; // Sécurise le nom du fichier passé dans la variable $_GET['fichier'] if(isset($_GET['fichier']) && strpos($_GET['fichier'], '/') === FALSE && strpos($_GET['fichier'], '.') !== 0) { $chemin_fichier = $dossier_protege.$_GET['fichier']; if(file_exists($chemin_fichier)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($chemin_fichier).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($chemin_fichier)); readfile($chemin_fichier); exit; } else { echo 'Ce fichier n\'existe pas'; } } else { echo 'Nom du fichier invalide'; } } else { echo 'Vous devez être authentifié'; } ?>
suppose que "nom_fichier.jpg" soit inclus dans le dossier "Test/"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php session_start(); // pour exemple je déclare $_SESSION['login'] (qui normalement est déclaré lors de l'authentification) $_SESSION['login'] = 1; ?> <!DOCTYPE html> <html lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Description" content = ""> <title></title> </head> <body> <a href="load_fichier.php?fichier=nom_fichier.jpg">fichier1</a> </body> </html>
Partager