8791 sujets

Développement web côté serveur, CMS

Bonjour,
j'ai réalisé une galerie photo en ligne et certaines des photos doivent être visibles seulement par les membres authentifiés (via php). Je ne peux (ni dois) donner directement un lien vers l'image qui n'aurait qu'à être connu pour contourner la "sécurité".

J'ai donc recherché un moyen de passer par php durant le processus d'affichage des photos pour vérifier les autorisations du visiteur. C'est ainsi que je suis tombé sur la fonction file_get_contents, qui renvoie directement le contenu du fichier. Modifiez l'en-tête HTTP pour déguiser la page en image, et vous obtenez la solution miracle (éh oép, rien que ça Smiley cligne ) à mes yeux.

Seulement voilà, ça fait passer tout le contenu du fichier par php, et ça peut se révéler assez lourd dans certains cas, entre 200Ko et 5Mo. Je me demande donc si ça n'est pas un peu trop gourmand pour la machine hôte.

Si un utilisateur avisé de php peut me renseigner sur ce sujet, ça m'évitera de faire des conneries. Smiley cligne
Modifié par rob-air (17 Jun 2007 - 22:41)
Salut
Une petite recherche t'aurais amené sur ce thread où QuentinC donne une alternative avec fread et une lecture du fichier par paquets.
a+
Pour 5 Mo tu as en effet plutôt intérêt à passer par du fopen/fread/fclose que du file_get_contents dans la mesure où tu n'as pas besoin d'autant de RAM disponible quela taille du fichier. Sachant que certains hébergeurs limitent la RAM utilisable à 8 Mo, voire même 4 Mo... ça risque d'être un peu limite.
QuentinC a écrit :
dans la mesure où tu n'as pas besoin d'autant de RAM disponible quela taille du fichier

C'est ce que je voulais savoir, merci !

Donc la méthode fread semble être la plus adaptée, je vais faire avec ça, merci encore. Smiley smile