Recevoir un mail quand vos photos sont affichées sur un site inconnu

  Information

Certains créateurs de site ne se compliquent pas pour obtenir du contenu de qualité rapidement : ils affichent les photos des autres. Ils utilisent ainsi vos images mais ils profitent également de votre bande passante. Pour être averti dans un tel cas et pouvoir agir vous pouvez définir une règle de réécriture. Les images vont donc s'afficher normalement mais vous pourrez faire constater rapidement le vol et le faire cesser.

La première étape consiste donc à ajouter la règle de réécriture. On teste que l'image existe physiquement et que la page qui affiche l'image n'est ni vide ni égale à votre site ou google. Si ces conditions sont remplies, les images sont traitées par un script php.

La deuxième étape consiste à définir le script traite_voleur.php. Il envoi un mail à une adresse de votre choix puis retourne l'image demandée.

  code source classé dans  .HTACCESS

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
 44    
 45    
                               
/*
Titre : Recevoir un mail quand vos photos sont affichées sur un site inconnu

URL : https://phpsources.net/code_s.php?id=753
Date édition : 24 Mai 2008
Date mise a jour : 05 Fev 2026

Rapport de la maj:
- correction du code
*/
/*---------------------------------------------------------------*/
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monsite\.fr [NC]
RewriteCond %{HTTP_REFERER} !^http://(images\.|www\.)?google\. [NC]
RewriteRule (.*).(gif|png|jpg|jpeg)$
/traite_voleur.php?fichier=$1.$2&extension=$2 [L]


//Script traite_voleur.php
$votre_email = 'admin@votresite.fr';
$msg = "L'image " . $_GET['fichier'] . " est affichée sur un site interdit\n";
$msg .= "Voici la page d'origine : " . $_SERVER['HTTP_REFERER'] . "\n";
@mail($votre_email, 'Affichage d\'image sur un site interdit', $msg,
"From: $votre_email\n")
if (!empty($_GET['fichier']) && @file_exists(dirname(__FILE__) . '/' . $_GET[
'fichier'])) { //si le fichier existe
$extension = isset($_GET['extension']) ? $_GET['extension'] : '';
if ($extension == 'gif') {
header('Content-type: image/gif');
} elseif (($extension == 'jpg') || ($extension == 'jpeg')) {
header('Content-type: image/jpeg');
} elseif ($extension == 'png') {
header('Content-type: image/png');
} else {
header('Status: 404 Not Found', false, 404);
exit;
}
readfile(dirname(__FILE__) . '/' . $_GET['fichier']);
} else {
header('Status: 404 Not Found', false, 404);
exit;
}

      Fonctions du code - Doc officielle PHP

Détail    php.net  
Description
Versions PHP
   dirname
Renvoie le nom du dossier
PHP 4, 5, 7 et 8
   empty
Détermine si une variable contient une valeur non nulle
PHP 4, 5, 7 et 8
   exit
Affiche un message et termine le script courant
PHP 4, 5, 7 et 8
   file_exists
Vérifie si un fichier existe
PHP 4, 5, 7 et 8
   header
Envoie un entête HTTP
PHP 4, 5, 7 et 8
   isset
Détermine si une variable est affectée
PHP 4, 5, 7 et 8
   mail
Envoi un mail
PHP 4, 5, 7 et 8
   readfile
Affiche un fichier
PHP 4, 5, 7 et 8

   Un petit merci aux auteurs pour leur travail, ça ne coûte rien et ça fait toujours plaisir wink

[3]

  • avatar

    Invité

    07 Oct 2010 à 16:57

    Ligne 33 =>
    oublie du entre 'Afichage d' et 'image'
    et le ; oublier
    @mail($votre_email, 'Affichage d'image sur un site interdit', $msg, "From: $votre_emailn");
     
    seul erreur constater, je n'est pas encore tester, mais si je constate d'autre erreur je reviendrait ;)

  • avatar

    KOogar

    21 Déc 2009 à 23:08

    Merci de nous signaler ou se trouve les erreurs dans le code.

  • avatar

    Invité

    21 Déc 2009 à 14:34

    Quelques erreurs dans le code, néanmoins une fois que ça marche c'est un bon moyen de serrer les "pilleurs sans scrupules", restera toujours celles et ceux qui font un copier/coller et embarque l'image sur leur propre serveur.
    Mille mercis !


 Autres snippets qui pourraient vous intéressez

Savoir si plusieurs Nom de Domaines sont réservés

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction fiable permettant d'effectuer une recherche de disponibilité d'un nom de domaine auprès des serveurs whois.

Les jours fériés en France

Compatibilité : PHP 5, PHP 7, PHP 8

Calcule tous les jours fériés en France - Calcule la date de la Pâques chrétienne pour une année donnée.

Afficher l'heure en temps réel sur son site

Compatibilité : PHP 5, PHP 7, PHP 8

Afficher l'heure de votre serveur sur votre site internet. Ce n'est pas l'heure de Windows mais l'heure de votre serveur qui s'affichera.

Redirection PHP ancien site vers nouveau site

Compatibilité : PHP 5, PHP 7, PHP 8

Il arrive que l'on doive faire une redirection définitive d'un ancien site vers un nouveau. Il faut alors mettre en place une redirection 301 sur chaque page.

Prestashop code PHP pour bulk mass Photos Upload

Compatibilité : PHP 5, PHP 7, PHP 8

Ce code permet de générer les vignettes sur Prestashop à la volée. Vous pouvez avec ce code uploader des centaines, des milliers de photos en 1 clic.

* Requêtes exécutées avec Recherche Contextuelle

  Derniers scripts PHP / MySQL

TwitterOAuth PHP Library pour API REST de Twitter 8.1.1

Script PHP / MySQL
Langue langue en
Date 08 Fév 2026
Taille 0.03 Mo
Catégorie Social-network

DokuWiki 2025-05-14b

logo DokuWiki
Langue langue en
Date 07 Fév 2026
Taille 4 Mo
Catégorie Wiki

WordPress 6.4.1

logo WordPress
Langue langue fr
Date 05 Fév 2026
Taille 34 Mo
Catégorie Blogs

PrestaShop 9.0.2-2.1

logo PrestaShop
Langue langue fr
Date 02 Fév 2026
Taille 116 Mo
Catégorie Ecommerce

  24 Mai 2008

Information sur les mises à jour

Dernière mise à jour :

    05 Fév 2026
    correction du code

7 426 Vues
Compatibilité du code
PHP 5, 7 et 8+
58 codes

Catégorie :  .HTACCESS

Ajouter un logo en filigrane sur vos images et vos photos
Anti spam à partir des urls qui spamment
Appliquer une condition à plusieurs règles de réécriture
Augmenter les performances avec AllowOverride
Autoriser l'accès qu'a certaines extensions
Blocage d'une adresse IP avec le fichier .htaccess
Bloquer des sites qui spam - version php et .htaccess
Bloquer l'accès à certaines extensions de fichier
Bloquer les user agent (navigateur) indésirables
Comment mettre du code php avec une extension html
Compression automatique des pages
Corriger automatiquement les petites erreurs de saisie des urls
Définir le charset par défaut
Désactiver l'option MultiViews : une url est accessible avec et sans extension
Déplacer une arborescence sur une autre url
Désactiver la signature du serveur
Empêche une réécriture de boucler
Empêcher l'accès avec www.
Eviter de recharger des pages statiques en indiquant une expiration dans 100 ans
Faire une réécriture ou une redirection que si la requête ne correspond pas à un répertoire existant
Faire une réécriture ou une redirection que si le fichier n'existe pas
Faire une réécriture ou une redirection que si le fichier existe
Force la redirection en HTTPS
Forcer l'accès en français si aucune langue n'est sélectionnée
Forcer la redirection de index.html vers /
Gérer l'accès au site selon l'heure
Gestion de cache par fichier .htaccess
Interdire l'accès à un répertoire sans fichier index
Interdire l'affichage de vos images sur un autre site
Maitriser l'affichage du contenu du répertoire en cas d'absence d'index
Mettre les images, flash,... en cache plus longtemps
Modifier le type MIME (Content-Type) pour un flux rss
Obliger l'accès avec index.php et rediriger l'accès par /
Protéger un répertoire avec un mot de passe chez FREE
Protection contre les attaques de hacker avec register global on
Protection d'un répertoire avec un mot de passe
Réécrire des sous-domaines vers le domaine principal avec une variable
Réécriture de sous-domaine vers un répertoire du domaine principal
Règle de réécriture avec plus de 9 paramètres
Réécriture si la requete ne correspond pas à 1 répertoire
Recevoir un mail quand vos photos sont affichées sur un site inconnu
Redirection d'un ancien nom de domaine vers un nouveau nom de domaine
Redirection d'un répertoire vers un sous domaine
Redirection d'une arborescence vers une page unique
Redirection https vers http ou http vers https, redirection page sécurisée SSL/TLS
Redirection massive avec le sous domaine (www)
Redirection pour une maintenance de votre site
Redirige tout un repertoire d'un domaine principale vers un sous-domaine
Rediriger la racine d'un site vers un répertoire
Rediriger tout en gardant l'url d'origine
Rediriger tout un répertoire vers la racine
Rediriger un domaine vers un autre et suivre dans Google analytics
Rediriger une page vers une url contenant la date du jour
Referrer bloquer le spam
Renommer l'url et les paramètres avec une redirection 301
Substituer vos images si elles sont affichées sur un autre site
Tester les réécritures d'url en local sur un PC avec WampServer
Tracking des liens du bouton J'aime de Facebook dans Analytics