|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Bonjour,
Je ne sais pas si cette question peut se résoudre par le php, en tout cas elle fait intervenir du php, donc voila: J'aimerais que des photos et autres fichiers uploadés par des visiteurs vers mon site ne soient pas accessibles aux visiteurs (car potentiellement dangereux: virus, photo choquantes, etc), mais soient accessibles depuis mon interface admin. Je peux mettre un .htaccess dans le repertoire ou ils se trouvent mais a chaque fois que je voudrais par exemple afficher une photo dans l'interface admin, donc pour chaque photo a chaque page, il faudra que je rentre le mot de passe, et ca rendrais le tout inutilisable tellement ca prendrait de temps! Si je met les fichiers dans un répertoire hors de la racine du site, il ne pourront pas etre affichés sur la page admin. Comment faire? N'y aurait-il pas par exemple le moyen de franchir le htaccess en passant le mot de passe par php? |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() |
Pas très bien compris mais bon je me lance.
Si vous avez une base de donné. Il suffirait de créer une table qui stockera le chemin des image et un statut visible ou non pour les visteurs; Ensuite un script php qui récupère les images visibles coté visteurs et toutes les images coté administrateur. Sans base de donnée vous pouvez passer par un fichier xml.
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Merci Yobs pour la réponse, mais le probleme n'est pas pour uploader les fichiers.
Une fois les fichiers dans un des répertoires du site, comment faire pour qu'ils ne soient pas accessibles aux visiteurs, mais qu'ils puissent etre affichés (si c'est des images par exp) sur une page html d'administration générée en php? |
|
|
00
|
|
|
#4 | |||
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
Citation:
Je pense qu'il s'agit là de la réponse à votre question Citation:
Citation:
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|||
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() |
En fait je voulais dire, après le stockage en bdd, il suffirez de récupérez dans la bdd les fichiers visibles pour les visiteurs en requetant sur le statu de l'image... la fatigue quant tu me tiens
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés |
|
|
00
|
|
|
#7 | |
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
Citation:
En PHP, il suffit de faire un simple readfile (voir l'exemple dans la doc PHP). Il faut logiquement préciser le content type, mais si votre navigateur est malin, il pourra s'en passer. Ensuite, dans le code HTML, on fait une balise img tout ce qu'il y a de plus classique, c'est juste l'URL qui ne ressemble pas à ce qu'on voit habituellement : <img src="/fichier.php?nom=xxx">
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Citation:
Citation:
A propos du content-type, ou peut-on le préciser? je n'ai rien vu dans readfile, est-ce une proriété css de <img>? En tout cas merci pour ces réponses rapides! |
||
|
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Ah je vois deja un probleme avec la méthode fichier.php : etant donné que le fichier.php doit etre appelé par <img> il doit se trouver accessible a n'importe quel internaute, donc pour éviter que n'importe quel internaute puisse s'en servir pour voir les images hors du répertoire www il faut plutot faire qqch du genre:
Code :
<img src="fichier.php?ficher=nomdufichier.jpg&code=codesecret"> Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Voila j'ai utilisé le code que j'ai donné précédemment (le codesecret n'est pas directement dans fichier.php mais dans un autrefichier.php hors du www et appelé avec include) et ca marche tres bien...pour les images.
Par contre pour d'autre type de fichier (je n'ai bien sur pas utilisé un <img> mais un <a href>) forcément quand on clique dessus il ne propose pas le téléchargement mais affichele contenu. Comment faire pour qu'il proposer le téléchargement? |
|
|
00
|
|
|
#11 | ||||
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
Citation:
Citation:
Le truc c'est qu'il faut connaître le type de chaque image, mais tu peux facilement t'en sortir en examinant l'extension du fichier à renvoyer. Les principaux Content-Type d'images sont : image/gif, image/jpeg et image/png. Pour les autres types, voir l'ami le moteur de recherche bien connu, leader de son marché, avec les mots-clés "mime type", par exemple, la source officielle (enfin, je crois) étant le site de l'IANA. Citation:
Citation:
En fait 2 choses :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
||||
|
|
00
|
|
|
#12 | |
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
Citation:
Code :
header("Content-Type: application/octet-stream");
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#13 | ||
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Ok merci encore Mac. J'ai deux remarques:
Citation:
J'ai trouvé en fouillant sur internet qu'il faut rajouter ca: Code :
header("Content-Disposition: attachment; filename=".$_GET["fichier"]); Citation:
Donc le code ne sera accessible par aucun des visiteurs du site. La page d'admin ne retourne une page html avec les liens "fichier.php?code=moncode&fichier=nomdefichier.extension" que si la personne s'est correctement authentifiée sur l'admin. Donc seuls les administrateurs connaitrons ce code. Apres a moi de bien choisir mes administrateur ;o) |
||
|
|
00
|
|
|
#14 | |
![]() ![]() Inscription : août 2005 Messages : 8 309 ![]() |
Citation:
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#15 | |
|
Membre du Club
![]() Inscription : septembre 2007 Messages : 193 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com