begin process at 2012 05 31 14:27:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

Remplacer les liens directs sur les images par une autre image


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Remplacer les liens directs sur les images par une autre image

mercredi 21 avril 2010 à 16:24:14 | Remplacer les liens directs sur les images par une autre image

Chris31000

Bonjour,

Je me permet de vous solliciter parce que malgré mes nombreuses recherches sur le net je ne trouve aucune solution à mon problème et comme je suis vraiment nulle en programmation je suis incapable de le faire moi même.
Je suis dans une impasse.

Je souhaiterais empêcher les internautes de faire des liens directs sur mes images (par liens directs, j'entends copier/coller leurs url pour les afficher sur divers forums) mais sans les empêcher de les prendre (enregistrer sous ...)
J'ai mis en place des messages sur mon site, même en clic droit pour les avertir de les enregistrer sous mais rien à faire, je retrouve sans arrêt des liens directs ailleurs que sur mon site.
Je passe mon temps à renommer les dites images ou, lorsqu'il y en a trop, à renommer les dossiers sur le serveurs parce que du coup mes pages sont longues à charger.
Ça devient lassant.

Le problème c'est que mon site est hébergé chez free (bah oui!) et que celui ci a désactivé le mod_rewrite.
Aussi j'en appelle à vos connaissances pour savoir s'il y existe une solution alternative en php, sans avoir à modifier toutes mes pages, à ce code du fichier htaccess:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mon-site.fr(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|bmp)$ http://Mon-image-de-remplacement.gif [R,NC]



C'est tout à fait ce que je recherche mais je ne peux pas l'utiliser en htaccess. :(
Cependant, si c'est faisable, est ce qu'il y a possibilité que ce fichier php puisse être placé uniquement dans les dossiers des images interdites de liens directs?

En espérant que vous pourrez m'aider, je vous remercie d'avance pour vos réponses.
jeudi 22 avril 2010 à 23:08:26 | Re : Remplacer les liens directs sur les images par une autre image

Chris31000

Personne? :(
dimanche 25 avril 2010 à 10:16:13 | Re : Remplacer les liens directs sur les images par une autre image

Chris31000

Toujours pas de réponse? Dois je ne déduire que n'est pas faisable?
dimanche 25 avril 2010 à 12:17:43 | Re : Remplacer les liens directs sur les images par une autre image

TychoBrahe

Salut,

Il est possible de faire ceci sans mod_rewrite mais ceci nécessitera pas mal de modification dans ton code. Un exemple serait de ne jamais donner le lien direct vers les images mais vers une page php qui donnera le contenu d'une image, grâce à cet intermédiaire tu peux effectuer divers choses, par exemple la vérification du referer mais aussi des statistiques sur la visualisation des images etc. Voici un exemple simpliste qui te permettra d'effectuer la vérification du referer :

Code PHP :
<?php

define('SITE_ADDR', 'http://example.com')
if (empty($_GET['img']) || empty($_SERVER['HTTP_REFERER']) ||
    strncmp($_SERVER['HTTP_REFERER'], SITE_ADDR, strlen(SITE_ADDR)) != 0)
  die();
$file = './img/' . basename($_GET['img']);
if (!file_exists($file))
  die();
$finfo = finfo_open(FILEINFO_MIME_TYPE);
header('Content-type: ' . finfo_file($finfo, $file));
finfo_close($finfo);
readfile($file);

?>


Ceci nécessite d'avoir dans le html des liens vers les images sous cette forme :
Code HTML :
<img src="./mon_script.php?img=image.jpg" alt="description">
dimanche 25 avril 2010 à 12:30:19 | Re : Remplacer les liens directs sur les images par une autre image

Chris31000

Bonjour TychoBrahe,

Je te remercie pour ta réponse.

Est ce que le procédé que tu m'indique n'empêche pas les internautes d'enregistrer les images sur le disques durs?
Je souhaite seulement empêcher les liens directs, pas le téléchargement.
dimanche 25 avril 2010 à 16:48:53 | Re : Remplacer les liens directs sur les images par une autre image

TychoBrahe

Salut,

Pas plus que l'url rewriting dont tu as posté l'exemple.
dimanche 25 avril 2010 à 17:16:55 | Re : Remplacer les liens directs sur les images par une autre image

Chris31000

Oki merci

Ceci dit, ça ne remplacera pas l'image hotlinkée par une autre?
Que se passera t il si un internaute poste une de mes images sur un autre site ou sur un forum?

Ton code est il opérationnel en l'état?
Hormis le lien de mon site et le nom du fichier php, dois je y apporter des modifications?
dimanche 25 avril 2010 à 17:37:41 | Re : Remplacer les liens directs sur les images par une autre image

TychoBrahe

Ceci dit, ça ne remplacera pas l'image hotlinkée par une autre?


Dans cet exemple non, enfin un simple readfile() de ton image à la place des die() et c'est fait..

Ton code est il opérationnel en l'état?
Hormis le lien de mon site et le nom du fichier php, dois je y apporter des modifications?


Il faut aussi adapter le répertoire dans lequel se trouvent les images et remplacer les die() par des readfile(). À noter que ce code suppose que les images soient toutes dans le même dossier ; par soucis de sécurité il est plus complexe de faire autrement vu qu'il faudrait alors interdire efficacement de remonter plus haut dans l'arborescence (le chroot à la main c'est un peu naze et générateur de failles). Toujours par soucis de sécurité, il faudrait rajouter une contrainte afin de ne jamais faire de readfile() de fichiers commençant par un point (fichier caché ou bien répertoire courant/supérieur).
dimanche 25 avril 2010 à 17:45:06 | Re : Remplacer les liens directs sur les images par une autre image

Chris31000

Je dois donc mettre readfile(lien-de-mon-image-de-remplacement) à la place de die()?

Le répertoire image c'est cette ligne?
$file = './img/'
où /img/ est le répertoire?

À noter que ce code suppose que les images soient toutes dans le même dossier


Je peux placer ce fichier php dans le répertoire image et créer ensuite un fichier par répertoire en modifiant bien entendu le nom du répertoire?

Toujours par soucis de sécurité, il faudrait rajouter une contrainte afin de ne jamais faire de readfile() de fichiers commençant par un point (fichier caché ou bien répertoire courant/supérieur).


Là c'est du chinois pour moi
Je ne dois donc pas remplacer die() par readfile()?

dimanche 25 avril 2010 à 19:35:37 | Re : Remplacer les liens directs sur les images par une autre image

TychoBrahe

Je dois donc mettre readfile(lien-de-mon-image-de-remplacement) à la place de die()?

Le répertoire image c'est cette ligne?
$file = './img/'
où /img/ est le répertoire?


Oui

Je peux placer ce fichier php dans le répertoire image et créer ensuite un fichier par répertoire en modifiant bien entendu le nom du répertoire?


Aussi oui, mais bon ce n'est pas ce qu'il y a de mieux.

Là c'est du chinois pour moi
Je ne dois donc pas remplacer die() par readfile()?


Si, tu dois remplacer die() par readfile(). Je disais juste qu'il faudrait rajouter une condition du type substr(basename($_GET['img']), 0, 1) == '.' dans le premier if.

1 2 3

Cette discussion est classée dans : images, site, liens, http, directs


Répondre à ce message

Sujets en rapport avec ce message

liens images xml rss [ par wallysub ] Bonjour, j'essaye de trouver une solution au probleme d'affichage des images sur le lecteur magpierss. sur certains flux rss (xml) les liens des image swfObject vidéos en fullbackground problème d'intégration [ par donzus ] Bonjour à toutes et à tous ! Depuis quelque temps j'essaie d'intégrer une vidéo dans ma page index.php ( generator: indexhibit) Le résultat souhaité include pour un débutant [ par sweaty41 ] Bonjour à tous Je débute en php pour créer un site. j'ai commencé ce site en html et j'avais utiliser les iframes et après renseignements sur le net, Récupération d'une donnée [ par 314vbfrance ] Bonjour à tous, Mon problème est la récupération d'une donnée d"un site pour traitement est ré affichage sur le site en développement d'un club de spo Site PHP SQL sur Free probleme images [ par regisgb17 ] Bonjour, J'ai fait un site en php et mysql: http://alpesfaune.free.frIl fonctionne bien so help grosse galère avec le lecteur media de mon site [ par djvincent ] <img style="BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-LE Rechercher les 15 dernières images du site [ par dth_2003 ] Bonjour a tous,Voila je débute toujours en php, j'ai déja réaliser quelque petit truc plus ou moins complexe grace a votre aide direct ou indirect via magpierss et lien images [ par wallysub ] Bonjourn j'utilise magpierss pour lire les flux rss sur mon site [url=http://www.soleya.fr]www.soleya.fr[/url] , je n'ai aucun probleme pour afficher Rediriger toutes les pages d'un site vers une page unique (maintenance d'un siite) [ par bluemandfr ] Bonjour, Je souhaite procéder à la maintenance de mon site. Si l'adresse de base de mon site est : http://www.monsite.com quel fichier .htaccess f Site bilingue et img src [ par DsD7 ] Bonsoir, je débute en php et mon problème est le suivant. Il y a 2 paramètres sur mon projet de site. Le premier est la langue (géré par des constante


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales