Bloquer la fenêtre de téléchargement
apocal33
-
avion-f16 Messages postés 20368 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 20368 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je voulais savoir si il été possible de bloquer la fenêtre de téléchargement?
je m'explique :
je veut laisser des fichier en téléchargement dans un fichier, et que les utilisateur puisse choisir tout et n'importe quelle fichier avec
<form action="cible_envoi.php" method="post" enctype="multipart/form-data">
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
<input type="submit" value="Envoyer le fichier" />
</p>
</form>
et le problème c'est que les gens on accès a tout les autre fichier.
Dons est ce que sa serait possible de donner l'accès a seulement 1 dossier.
merci d'avance
je voulais savoir si il été possible de bloquer la fenêtre de téléchargement?
je m'explique :
je veut laisser des fichier en téléchargement dans un fichier, et que les utilisateur puisse choisir tout et n'importe quelle fichier avec
<form action="cible_envoi.php" method="post" enctype="multipart/form-data">
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
<input type="submit" value="Envoyer le fichier" />
</p>
</form>
et le problème c'est que les gens on accès a tout les autre fichier.
Dons est ce que sa serait possible de donner l'accès a seulement 1 dossier.
merci d'avance
A voir également:
- Bloquer la fenêtre de téléchargement
- Site de telechargement - Accueil - Outils
- Bloquer pub youtube - Accueil - Streaming
- Telechargement - Télécharger - Traitement de texte
- Téléchargement - Télécharger - Compression & Décompression
- Fenetre windows - Guide
1 réponse
Salut.
Voilà deux solutions :
- Tu peux créer un dossier pour chaque utilisateur et le protéger avec une identifcation HTTP (.htaccess et .htpasswd) où chaque utilisateur a son compte (et il n'y a qu'un compte par dossier).
- Tu peux interdire l'accès au dossier par HTTP (avec un .htaccess contenant « Deny from all ») et créer un script de téléchargement en PHP qui se charge de vérifier si l'utilisateur est bien le propriétaire (il te faudra une base de données).
Voilà deux solutions :
- Tu peux créer un dossier pour chaque utilisateur et le protéger avec une identifcation HTTP (.htaccess et .htpasswd) où chaque utilisateur a son compte (et il n'y a qu'un compte par dossier).
- Tu peux interdire l'accès au dossier par HTTP (avec un .htaccess contenant « Deny from all ») et créer un script de téléchargement en PHP qui se charge de vérifier si l'utilisateur est bien le propriétaire (il te faudra une base de données).
je veut bien le détaille pour la solution 2 ^^ si c possible
merci
Stocke les fichiers dans le dossier "fichiers".
Dans ce dossier, crées un .htaccess contenant ceci :
Crées un fichier "telecharger.php" contenant ceci (minimum) :
<?php session_start(); define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PASS',''); define('DB_NAME','nom_de_la_base'); define('DB_DRIVER','mysql'); if(isset($_SESSION['member_id'])) { $pdo = new PDO(DB_DRIVER.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS); $sql = 'SELECT COUNT(*) AS nb FROM fichiers WHERE user_id = '.(int) $_SESSION['id'].' AND id = '.$pdo->quote($_GET['file']); $req = $pdo->query($sql); $data = $req->fetch(); if($data['nb'] > 0) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($_GET['file'])); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($_GET['file'])); ob_clean(); flush(); readfile($file); exit; } else { header('HTTP/1.1 403 Forbidden'); echo 'Vous n\'êtes pas autorisé à obtenir ce fichier'; } } else { header('HTTP/1.1 403 Forbidden'); echo 'Vous n\'êtes pas autorisé à obtenir ce fichier'; } ?>Voilà la structure minimum de la table "fichiers" :- id : Nom de fichier généré
- user_id : Identifiant unique du membre
Tu peux ajouter d'autres données comme la date d'ajout, le type de fichier, l'id de la catégorie, ...
Lorsque tu enregistres un fichier, n'oublie pas d'insérer l'entrée :
Sans oublier le lien :