interdiction acces image

sakini
interdiction acces image

Bonjour
je voudrais interdire l'acces a une image si on tape http://server/image.jpg
mais par contre pouvoir l'afficher éventuellement dans une page html généré par php ou je fais un control avant d'afficher l'image
est-ce possible ?

K-lo
Re: interdiction acces image snas php

sakini wrote:
Bonjour
je voudrais interdire l'acces a une image si on tape http://server/image.jpg

Si on tape où ?

Ton problème c'est quoi ? Intercepté le contenu de la barre d'adresse du navigateur?
ou intercepté le contenu d'un champs de ta page web? si c'est le cas tu test, à la validation de ton forumulaire via javascript, la valeur de ton champs :

<script="javascript">
if(document.form1.champ1.value == "http://server/image.jpg"){
alert("Vous ne pouvez ouvrir cette image");
}
</script>

- form1 : le nom renseigné par l'attribut name de ta balise
- champ1 : le nom renseigné par l'attribut name de ta balise représentant le champs.

sakini wrote:

mais par contre pouvoir l'afficher éventuellement dans une page html généré par php ou je fais un control avant d'afficher l'image
est-ce possible ?

Tu veux faire quoi comme contrôle ?

En fait j'ai pas copmpris ton problème :(

sakini

En fait
je realise un script de gestion de gallerie d'image php/mysql
un user a acces a certaines image de la gallerie en fonction de son profil.
Ce principe fonctionne déja
mais si un user parvient a avoir l'url direct de l'image (http://server/rep1/rep2/image.jpg) il peut quand même l'afficher en tapant directement l'url dans le browser, dans ce cas le script php n'est pas appellé et le controle sur les droit d'acces ne se fait pas.
Est-ce-qu'il y a une facon de configurer le .htaccess par exemple de façon à ce que si l'on tape http://server/rep1/rep2/image.jpg dans la barre d'adresse aucune image ne s'affiche mais qu'en revenche que l'image soit affiché si l'on passe par un script

<?php //function vérification des droit de l'image selon le user
le user a le droit ==> echo "<img src=$urlimage">
le user n'a pas le droit==>echo ""
kryll

Salut,

je pense que tu ne devrais pas mettre le chemin directement vers ton image comme URL, en gros ne pas faire appel à l'image avec http://monsite/monrepimage/monimage.jpg mais plutôt utiliser une url du style http://monsite/monappli/monfichier_qui_fournit_l_image.php.

Le fichier PHP qui fournit l'image devra connaitre l'emplacement de l'image (lu dans la BDD je pense) et respecter les droits, l'image sera générée à partir de la lecture du fichier image par le serveur et redirigée par le PHP avec la bonne entête HTTP.

/*
Code pour déterminer les droits
*/

/*
Code pour déterminer le chemin de l'image à laquelle accéder
Le chemin sur le serveur hein, pas l'URL
*/

/*
Exemple pour un JPEG où $imgpath est le chemin (nom et extension compris) vers l'image en question.
*/
header("Content-Type: image/jpeg");
$img=@imagecreatefromjpeg($imgpath);
imagejpeg($img);