Bonjour,

Je ne sais pas trop dans quel forum poser ma question, mais comme je développe mon site en PHP je la mets donc ici...

Bref, Je développe un petit site où des visiteurs authentifiés peuvent déposer des images. Pour le moment celles-ci sont enregistrées toutes dans le même dossier avec comme nom l'ID de l'enregistrement correspondant dans la BDD.
Il est donc facile pour n'importe quel visiteur de changer le numéro dans le nom d'une image pour voir toutes les autres chargées, ce qui n'est pas top...

J'avais donc dans l'idée d'avoir pour chaque utilisateur une sorte de code unique, et de placer les images de chaque utilisateur dans un dossier à lui, nommé avec ce code.
Au lieu d'avoir "img/2.jpg", j'aurais donc "img/xDp57iY/2.jpg". Beaucoup plus difficile à trouver pour d'autres utilisateurs.

Cette méthode vous parait-elle bonne, y'a-t-il mieux?
Je suis preneur de toute idée. :)

Merci!

4 réponses


eltharin
Réponse acceptée

si tu as une bdd c'est encore mieux, tu enregistres tes images dans un répertoire inaccéssible via web, et tu créés une page de téléchargement ou tu vérifies que l'utilisateur à le droit d'afficher cette image et tu l'affiches.

jouvrard
Auteur

J'ai une BDD donc ça pas de souci.

Je n'avais pas pensé à ce système en effet, c'est encore plus sûr et même si c'est tout sauf du secret défense ce que vont poster les utilisateurs (c'est un cercle privé), c'est toujours mieux de faire des choses propres. :)

Et pour sortir mon image ensuite je fais ça je suppose (en tout cas ça fonctionne après un petit test)

<?php
header ("Content-type: image/png");
$lien = 'chemin_vers_mon_image;
$image = imagecreatefromjpeg($lien);
imagejpeg($image);

EDIT> Je viens de mettre en place ce système et ça marche parfaitement.
J'ai préféré garder le dossier avec un nom aléatoire pour chaque utilisateur, leurs images sont ainsi regroupées au même endroit mais le principe est celui qut tu as donné.

un echo file_get_contents($lien); est peu-etre plus rapide et moins consomateur de ressource, il me semble que le traitement d'image est un peu lourd, et en plus ca permet d'être compatible tout type de fichier (bmp, jpg, svg) mais aussi les autres (txt,pdf,...)

jouvrard
Auteur

Ok merci, je vais voir ça. :)